使用 JavaScript 11.x 版用戶端連結庫 Azure Blob 儲存體 程式代碼範例
本文說明使用適用於 JavaScript Azure Blob 儲存體 客戶端連結庫 11.x 版的程式代碼範例。
在 2023 年 3 月 31 日,我們已淘汰不支援不符合 目前 Azure SDK 指導方針的 Azure SDK 連結庫。 新的 Azure SDK 連結庫會定期更新,以推動一致的體驗,並強化您的安全性狀態。 建議您轉換至新的 Azure SDK 連結庫,以利用新功能和重大安全性更新。
雖然舊版連結庫仍然可以在 2023 年 3 月 31 日之後使用,但將不再收到 Microsoft 的官方支援和更新。 如需詳細資訊,請參閱 支援淘汰公告。
使用 Blob 記憶體建置高可用性應用程式
下載範例專案並將檔案解壓縮。 您也可以使用 git 將應用程式的複本下載到您的開發環境。 此範例專案包含基本 Node.js 應用程式。
git clone https://github.com/Azure-Samples/storage-node-v10-ha-ra-grs.git
設定範例
若要執行此範例,必須將儲存體帳戶認證新增到 .env.example
檔案,然後將它重新命名為 .env
。
AZURE_STORAGE_ACCOUNT_NAME=<replace with your storage account name>
AZURE_STORAGE_ACCOUNT_ACCESS_KEY=<replace with your storage account access key>
您可以在 Azure 入口網站中,瀏覽至儲存體帳戶,然後在 [設定] 區段中選取 [存取金鑰],即可找到此資訊。
開啟命令提示字元、瀏覽至範例資料夾,接著輸入 npm install
,藉此安裝必要相依性。
執行主控台應用程式
若要執行範例,請開啟命令提示字元,瀏覽至範例資料夾,然後輸入 node index.js
。
範例會在您的 Blob 儲存體帳戶中建立容器、將 HelloWorld.png 上傳到容器中,然後重複檢查容器和映像是否已複寫到次要區域。 複寫之後,系統將會提示您輸入 D 或 Q (接著按下 ENTER) 以下載或結束。 輸出看起來應類似下列範例:
Created container successfully: newcontainer1550799840726
Uploaded blob: HelloWorld.png
Checking to see if container and blob have replicated to secondary region.
[0] Container has not replicated to secondary region yet: newcontainer1550799840726 : ContainerNotFound
[1] Container has not replicated to secondary region yet: newcontainer1550799840726 : ContainerNotFound
...
[31] Container has not replicated to secondary region yet: newcontainer1550799840726 : ContainerNotFound
[32] Container found, but blob has not replicated to secondary region yet.
...
[67] Container found, but blob has not replicated to secondary region yet.
[68] Blob has replicated to secondary region.
Ready for blob download. Enter (D) to download or (Q) to quit, followed by ENTER.
> D
Attempting to download blob...
Blob downloaded from primary endpoint.
> Q
Exiting...
Deleted container newcontainer1550799840726
瞭解程式代碼範例
使用 Node.js V10 SDK 時,並不需要回呼處理常式。 相反地,此範例會建立已設定重試選項和次要端點的管線。 這項設定可允許應用程式在無法透過主要管線取得您的資料時,自動切換到次要管線。
const accountName = process.env.AZURE_STORAGE_ACCOUNT_NAME;
const storageAccessKey = process.env.AZURE_STORAGE_ACCOUNT_ACCESS_KEY;
const sharedKeyCredential = new SharedKeyCredential(accountName, storageAccessKey);
const primaryAccountURL = `https://${accountName}.blob.core.windows.net`;
const secondaryAccountURL = `https://${accountName}-secondary.blob.core.windows.net`;
const pipeline = StorageURL.newPipeline(sharedKeyCredential, {
retryOptions: {
maxTries: 3,
tryTimeoutInMs: 10000,
retryDelayInMs: 500,
maxRetryDelayInMs: 1000,
secondaryHost: secondaryAccountURL
}
});