如何从适用于 Node.js 的 Azure blob v12 SDK 中删除 blob

Posted

技术标签:

【中文标题】如何从适用于 Node.js 的 Azure blob v12 SDK 中删除 blob【英文标题】:How to Delete a blob from Azure blob v12 SDK for Node.js 【发布时间】:2020-06-28 04:57:57 【问题描述】:

如何通过 Node.js 删除 Azure Blob,并且我正在使用 Azure library v12 SDK for Node.js (https://docs.microsoft.com/en-us/azure/storage/blobs/storage-quickstart-blobs-nodejs)

我找不到删除 blob 方法,我想按名称删除 blob。

【问题讨论】:

勾选这个删除metjod.docs.microsoft.com/en-us/javascript/api/@azure/storage-blob/… 【参考方案1】:

正如@Georage 在评论中所说,您可以使用delete 方法删除一个blob。

这是我的演示:

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

// Load the .env file if it exists
require("dotenv").config();

async function streamToString(readableStream) 
    return new Promise((resolve, reject) => 
      const chunks = [];
      readableStream.on("data", (data) => 
        chunks.push(data.toString());
      );
      readableStream.on("end", () => 
        resolve(chunks.join(""));
      );
      readableStream.on("error", reject);
    );
  

async function main() 
    const AZURE_STORAGE_CONNECTION_STRING = process.env.AZURE_STORAGE_CONNECTION_STRING;
    const blobServiceClient = await BlobServiceClient.fromConnectionString(AZURE_STORAGE_CONNECTION_STRING);
    const containerClient = await blobServiceClient.getContainerClient("test");
    const blockBlobClient = containerClient.getBlockBlobClient("test.txt")
    const downloadBlockBlobResponse = await blockBlobClient.download(0);
    console.log(await streamToString(downloadBlockBlobResponse.readableStreamBody));
    const blobDeleteResponse = blockBlobClient.delete();
    console.log((await blobDeleteResponse).clientRequestId);


main().catch((err) => 
    console.error("Error running sample:", err.message);
  );

运行此示例后,test.txt 文件已从 test 容器中删除。

【讨论】:

【参考方案2】:

虽然杰克的答案有效,但它比需要的复杂。与其创建 blockBlobClient 然后删除它,更简单的方法是使用:

containerClient.deleteBlob('blob-name')

【讨论】:

以上是关于如何从适用于 Node.js 的 Azure blob v12 SDK 中删除 blob的主要内容,如果未能解决你的问题,请参考以下文章

如何使用适用于 Node.js 的 AWS 开发工具包将 Amazon S3 中的所有对象从一个前缀复制/移动到另一个前缀

pipe(Node.js 的流)和 bl(BufferList)如何协同工作?

如何包含适用于 Node.js 的 Amazon EC2 库?

如何使用适用于 node.js 的单实例弹性负载均衡器设置 HTTPS?

如何从 node.js 应用程序运行命令行工具

使Node.js中的http.request适用于浏览器