使用 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 存储构建高可用性应用

相关文章:教程:使用 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.chinacloudapi.cn`;
const secondaryAccountURL = `https://${accountName}-secondary.blob.core.chinacloudapi.cn`;

const pipeline = StorageURL.newPipeline(sharedKeyCredential, {
  retryOptions: {
    maxTries: 3,
    tryTimeoutInMs: 10000,
    retryDelayInMs: 500,
    maxRetryDelayInMs: 1000,
    secondaryHost: secondaryAccountURL
  }
});