1

我正在尝试将一个容器中的 blob 复制到 azure 中的另一个存储帐户。

我正在使用@azure/storage-blob 12.0.0,但我无法弄清楚如何在不下载 blob 的情况下将其复制到另一个容器。

也许有人可以提供帮助并发布一个快速示例。

斯特凡

4

1 回答 1

6

如果你想用 nodejs sdk 复制 blob @azure/storage-blob,你可以使用方法BlobClient.beginCopyFromURL来实现它。更多详细信息,请参阅文档

例如(将 blob 从一个容器复制到同一存储帐户中的另一个容器)

const { BlobServiceClient, StorageSharedKeyCredential } = require("@azure/storage-blob");

async function copy(){

    const account = "blobstorage0516";
    const accountKey=""
    const cert = new StorageSharedKeyCredential(account,accountKey)
    const blobServiceClient = new BlobServiceClient(
      `https://${account}.blob.core.windows.net`,
      cert
    );
    
    const sourceContainer=blobServiceClient.getContainerClient("test")
    const desContainer=blobServiceClient.getContainerClient("copy")
    //if the desContainer does not exist, please run the following code
    await desContainer.create()
    
    //copy blob
    const sourceBlob=sourceContainer.getBlobClient("emp.txt");
    const desBlob=desContainer.getBlobClient(sourceBlob.name)
    const response =await desBlob.beginCopyFromURL(sourceBlob.url);
    const result = (await response.pollUntilDone())
    console.log(result._response.status)
    console.log(result.copyStatus)
}

copy()

在此处输入图像描述

于 2020-07-01T01:33:29.767 回答