在 Azure Blob 上传中,如果上传具有相同文件名(在同一容器中)的新文件,文件将被覆盖。
我想在保存新文件之前重命名它,以避免覆盖任何文件 - 这可能吗?
场景:
- 将文件“Image.jpg”上传到容器“mycontainer”
- 将文件“Image.jpg”上传到容器“mycontainer”(具有不同的内容)
- 将第二个“Image.png”重命名为“Image_{guid}.jpg”,然后将其保存到“mycontainer”。
最佳答案
您无法重命名 blob(没有适用于它的 API)。您的选择:
- 在上传之前检查 Blob 名称是否存在,如果该名称已被使用,则为即将上传的 Blob 选择不同的名称
- 通过将现有 blob 复制到不同名称的新 blob,然后删除原始 blob 来模拟重命名
正如 @juunas 在评论中指出的那样:您必须管理您的工作流程,以避免在检查是否存在、重命名等方面出现潜在的竞争条件。
关于如果 Blob 名称存在,Azure Blob 上传重命名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45709036/