azure - 避免覆盖 AZURE 的 blob

标签 azure azure-storage azure-blob-storage

如果我将文件上传到已存在该文件的同一容器中的 azure blob 上,则会覆盖该文件,如何避免覆盖该文件?下面我提到的场景...

第 1 步 - 将文件“abc.jpg”上传到 Azure 上名为“filecontainer”的容器中

第2步 - 上传后,尝试将同名的不同文件上传到同一个容器

输出 - 它将用最新上传的文件覆盖现有文件

我的要求 - 我想避免这种覆盖,因为不同的人可能会将具有相同名称的文件上传到我的容器。

请帮忙

附注

-我不想为不同的用户创建不同的容器

-我正在使用带有 Java 的 REST API

最佳答案

Windows Azure Blob 存储支持条件 header ,使用它可以防止 Blob 被覆盖。您可以在此处阅读有关条件 header 的更多信息:http://msdn.microsoft.com/en-us/library/windowsazure/dd179371.aspx .

由于您希望不覆盖 blob,因此需要指定 If-None-Match 条件 header 并将其值设置为 *。这将导致上传操作失败,并出现 Precondition Failed (412) 错误。

另一个想法是在上传之前检查 blob 是否存在(通过获取它的属性),但是我不推荐这种方法,因为它可能会导致一些并发问题。

关于azure - 避免覆盖 AZURE 的 blob,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16958629/

相关文章:

c# - 尝试引用 Azure Analysis Service 表格模型 C# 时出现异常

azure - 我可以使用 Neudesic Azure Storage Explorer 访问 Azure 中国吗?

azure - 如何设计 Azure Service Fabric 中的层

python - Azure Functions Blob 部署

android - 使用 SAS(共享访问签名)通过 Azure 存储上传文件

asp.net - 如何在线查看、编辑 Windows Azure 存储中的文档并为其附加签名

c# - 将对象列表以 json 格式保存到 blob

azure - 如何使用 SAS 限制 azure blob 容器创建

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

azure - 在 box.com 中创建的文件如何自动复制到 Azure blob 存储?