如果我将文件上传到已存在该文件的同一容器中的 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/