如何使用 node sdk 将 Azure 中的 blob 复制到另一个容器

How to Copy a blob in azure to another container with node sdk

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

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

也许有人可以提供帮助,post 举个简单的例子。

斯蒂芬

如果想用nodejs sdk@azure/storage-blob复制blob,可以使用方法BlobClient.beginCopyFromURL来实现。详情请参考document.

例如(将 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()