我正在尝试使用 azure-storage
npm 包中的 deleteBlobIfExists()
函数从私有(private) Blob 容器中删除 Blob。但是,当执行该函数时,结果
始终返回为false
,这意味着该 blob“不存在”。但 Blob 确实存在。我只是假设它找不到 blob,因为容器的访问权限设置为“私有(private)”。帮忙?
const blobService = azure.createBlobService();
blobService.deleteBlobIfExists("my-blob-container", "my-blob", (err, result) => {
if(err) {
console.log(err);
}
});
最佳答案
如果容器的访问级别是私有(private)的,则在使用 azure.createBlobService()
创建 Blob 客户端时需要提供存储连接字符串或帐户名称和帐户 key 。
此外,sdk azure-storage
是 Azure Storage Nodejs V2。它是一个遗留的 SDK。我建议你使用sdk @azure/storage-blob
。这是最新的SDK。关于如何使用,请引用以下步骤
- 创建 sp
az ad sp create-for-rbac -n <your-application-name> --skip-assignment
az keyvault set-policy --name <your-key-vault-name> --spn $AZURE_CLIENT_ID --secret-permissions backup delete get list purge recover restore set
- 创建 .env 文件
AZURE_TENANT_ID=<tenant id>
AZURE_CLIENT_ID=<app id>
AZURE_CLIENT_SECRET=<password>
- 安装包
npm install @azure/identity
npm install @azure/storage-blob
- 代码
var storage = require("@azure/storage-blob")
const { DefaultAzureCredential } = require("@azure/identity");
const defaultAzureCredential = new DefaultAzureCredential();
const blobclient = new storage.BlobServiceClient("<blob url>",defaultAzureCredential)
if(blobClient.exists()){
blobClient.delete()
}
关于node.js - 如何从私有(private) Azure Blob 存储容器中删除 Blob,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59364798/