如果 Blob 名称存在,Azure Blob 上传重命名

标签 azure azure-storage azure-blob-storage

在 Azure Blob 上传中,如果上传具有相同文件名(在同一容器中)的新文件,文件将被覆盖。

我想在保存新文件之前重命名它,以避免覆盖任何文件 - 这可能吗?

场景:

  1. 将文件“Image.jpg”上传到容器“mycontainer”
  2. 将文件“Image.jpg”上传到容器“mycontainer”(具有不同的内容)
  3. 将第二个“Image.png”重命名为“Image_{guid}.jpg”,然后将其保存到“mycontainer”。

最佳答案

您无法重命名 blob(没有适用于它的 API)。您的选择:

  • 在上传之前检查 Blob 名称是否存在,如果该名称已被使用,则为即将上传的 Blob 选择不同的名称
  • 通过将现有 blob 复制到不同名称的新 blob,然后删除原始 blob 来模拟重命名

正如 @juunas 在评论中指出的那样:您必须管理您的工作流程,以避免在检查是否存在、重命名等方面出现潜在的竞争条件。

关于如果 Blob 名称存在,Azure Blob 上传重命名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45709036/

相关文章:

node.js - Webpack @azure/storage-blob node-fetch AbortSignal 问题

c# Azure无法设置blob层

python - 使用azure函数标识访问存储容器

azure - 如何在 Azure 中查询 CSP/赞助订阅的使用详细信息?

Azure 服务总线高级版 - 异地恢复 - 丢弃的消息

php - 使用 PHP 从 Windows Azure 容器获取所有文件

Azure 存储 CloudBlockBlob.PutBlockAsync() HTTP header 之一的值格式不正确。

javascript - 通过 javascript 中的 xhr 请求上传到 azure blob 是否安全

python - Azure Blob 查询文档

带有下拉菜单的 Azure 自动化参数