共用方式為


使用 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 上傳到容器中,然後重複檢查容器和映像是否已複寫到次要區域。 複寫之後,系統將會提示您輸入 DQ (接著按下 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
  }
});