事件
3月31日 下午11時 - 4月2日 下午11時
最大的網狀架構、Power BI 和 SQL 學習事件。 3 月 31 日 - 4 月 2 日。 使用程式代碼 FABINSIDER 來節省 $400 美元。
立即註冊本文示範如何建立並使用帳戶 SAS 權杖,藉此使用適用於 JavaScript 的 Azure Blob 儲存體用戶端程式庫 v12。 連線之後,您的程式碼就可以在 Blob 儲存體服務的容器、Blob 和功能上運作。
範例程式碼片段可在 GitHub 中以可執行的 Node.js 檔案形式來取得。
套件 (npm) | 範例 | API 參考 | 程式庫原始程式碼 | 提供意見反應
帳戶 SAS 權杖是一種 SAS 權杖,可供 Azure 儲存體提供的存取委派。 帳戶 SAS 權杖可讓您存取 Azure 儲存體。 權杖的限制必須在建立權杖時進行定義。 由於具有權杖的任何人都可以用其來存取您的儲存體帳戶,因此您應該使用最嚴格的權限來定義權杖 (該權限仍允許權杖完成所需的工作)。
權杖建立的最佳做法包括限制下列權限:
包含建立帳戶 SAS 權杖所需的相依性。
const {
BlobServiceClient,
generateAccountSASQueryParameters,
AccountSASPermissions,
AccountSASServices,
AccountSASResourceTypes,
StorageSharedKeyCredential,
SASProtocol
} = require('@azure/storage-blob');
require('dotenv').config()
使用 Blob 儲存體帳戶名稱和金鑰來建立 StorageSharedKeyCredential。 建立和使用 SAS 權杖時需要此金鑰。
使用儲存體帳戶名稱和帳戶金鑰來建立 StorageSharedKeyCredential。 然後使用 StorageSharedKeyCredential 來初始化 BlobServiceClient。
const constants = {
accountName: process.env.AZURE_STORAGE_ACCOUNT_NAME,
accountKey: process.env.AZURE_STORAGE_ACCOUNT_KEY
};
const sharedKeyCredential = new StorageSharedKeyCredential(
constants.accountName,
constants.accountKey
);
其餘的範例程式碼片段會假設下列非同步樣板程式碼適用於 Node.js。
async function main() {
const sasToken = await createAccountSas();
await useSasToken(sasToken);
}
main()
.then(() => {
console.log(`done`);
}).catch((ex) => {
console.log(`Error: ${ex.message}`)
});
由於此權杖可以搭配 Blob、佇列、資料表和檔案使用,因此某些設定會比 Blob 選項更廣泛。
建立選項物件。
SAS 權杖的可用範圍是由 AccountSASSignatureValues 所定義。
使用 SDK 所提供的下列協助程式函式,為值建立正確的實值型別:
將物件傳遞至 generateAccountSASQueryParameters 函式以及 SharedKeyCredential,以建立 SAS 權杖。
在傳回 SAS 權杖之前,請在前面加上查詢字串分隔符號:?
。
async function createAccountSas() {
const sasOptions = {
services: AccountSASServices.parse("btqf").toString(), // blobs, tables, queues, files
resourceTypes: AccountSASResourceTypes.parse("sco").toString(), // service, container, object
permissions: AccountSASPermissions.parse("rwdlacupi"), // permissions
protocol: SASProtocol.Https,
startsOn: new Date(),
expiresOn: new Date(new Date().valueOf() + (10 * 60 * 1000)), // 10 minutes
};
const sasToken = generateAccountSASQueryParameters(
sasOptions,
sharedKeyCredential
).toString();
console.log(`sasToken = '${sasToken}'\n`);
// prepend sasToken with `?`
return (sasToken[0] === '?') ? sasToken : `?${sasToken}`;
}
妥善保存 SAS 權杖,直到使用為止。
若要使用帳戶 SAS 權杖,您必須將其與帳戶名稱結合以建立 URI。 傳遞 URI 以建立 blobServiceClient。 擁有 blobServiceClient 之後,您就可以使用該用戶端來存取 Blob 服務。
// connect-with-sas-token.js
const { BlobServiceClient } = require('@azure/storage-blob');
require('dotenv').config()
const accountName = process.env.AZURE_STORAGE_ACCOUNT_NAME;
const sasToken = process.env.AZURE_STORAGE_SAS_TOKEN;
if (!accountName) throw Error('Azure Storage accountName not found');
if (!sasToken) throw Error('Azure Storage accountKey not found');
const blobServiceUri = `https://${accountName}.blob.core.windows.net`;
// https://YOUR-RESOURCE-NAME.blob.core.windows.net?YOUR-SAS-TOKEN
const blobServiceClient = new BlobServiceClient(
`${blobServiceUri}?${sasToken}`,
null
);
async function main(){
const containerName = 'REPLACE-WITH-EXISTING-CONTAINER-NAME';
const blobName = 'REPLACE-WITH-EXISTING-BLOB-NAME';
const timestamp = Date.now();
const fileName = `my-new-file-${timestamp}.txt`;
// create container client
const containerClient = await blobServiceClient.getContainerClient(containerName);
// create blob client
const blobClient = await containerClient.getBlockBlobClient(blobName);
// download file
await blobClient.downloadToFile(fileName);
console.log(`${fileName} downloaded`);
}
main()
.then(() => console.log(`done`))
.catch((ex) => console.log(`error: ${ex.message}`));
dotenv
套件可用來從 .env
檔案讀取您的儲存體帳戶名稱。 此檔案不應簽入原始檔控制。
事件
3月31日 下午11時 - 4月2日 下午11時
最大的網狀架構、Power BI 和 SQL 學習事件。 3 月 31 日 - 4 月 2 日。 使用程式代碼 FABINSIDER 來節省 $400 美元。
立即註冊訓練
模組
將影像從靜態 Web 應用程式上傳至 Azure Blob 儲存體 - Training
了解如何使用 Azure 函式產生隨需共用存取簽章,藉以將影像從靜態 Web 應用程式安全地上傳至 Azure Blob 儲存體。
認證
Microsoft Certified: Azure Developer Associate - Certifications
在 Microsoft Azure 中建置端對端解決方案,以建立 Azure Functions、實作和管理 Web 應用程式、開發使用 Azure 儲存體的解決方案等等。
文件
使用 JavaScript 建立使用者委派 SAS - Azure Storage
在可與 Azure Blob 儲存體搭配運作的 JavaScript 應用程式中,建立和使用使用者委派 SAS 權杖。 本文可協助您設定專案,並授權存取 Azure Blob 儲存體端點。
使用 JavaScript 建立容器或 blob 的服務 SAS - Azure Storage
了解如何使用適用於 JavaScript 的 Azure Blob 儲存體用戶端程式庫,建立容器或 blob 的服務共用存取簽章 (SAS)。
JavaScript:將影像上傳至 Blob 記憶體 - JavaScript on Azure
使用用戶端 web 應用程式,直接使用帶有 SAS 令牌查詢字串的 URL,將檔案上傳至 Azure 儲存 Blob。
適用於 JavaScript 的 Azure 儲存體 Blob 用戶端程式庫