首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >避免覆盖blobs AZURE

避免覆盖blobs AZURE
EN

Stack Overflow用户
提问于 2013-06-06 17:35:53
回答 3查看 2.1K关注 0票数 1

如果我在同一个容器中上传了一个azure blob上的文件,它已经覆盖了该文件,如何避免覆盖相同的文件?下面我将提到这样的场景:

将文件"abc.jpg“上传到名为"filecontainer”的容器中

step2 -上传后,尝试将具有相同名称的不同文件上传到相同的容器

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

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

请帮帮忙

附注:

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

-i将REST API与Java结合使用

EN

回答 3

Stack Overflow用户

发布于 2013-06-06 19:48:17

Windows Azure Blob存储支持条件标头,您可以使用它来防止覆盖Blob。你可以在这里阅读更多关于条件头的内容:http://msdn.microsoft.com/en-us/library/windowsazure/dd179371.aspx

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

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

票数 4
EN

Stack Overflow用户

发布于 2013-06-06 19:18:59

您无法控制用户上传文件所使用的名称。但是,您可以控制存储这些文件的名称。标准方法是生成Guid并相应地命名每个文件。发生冲突的可能性几乎为零。

代码语言:javascript
复制
A simple pseudocode looks like this:

//generate a Guid and rename the file the user uploaded with the generated Guid
//store the name of the file in a dbase or what-have-you with the Guid
//upload the file to the blob storage using the name you generated above

希望这能有所帮助。

票数 2
EN

Stack Overflow用户

发布于 2013-06-06 19:15:35

让我这么说吧:

  • 第1步- user X上载文件"abc1.jpg",您将其保存到本地文件夹XYZ
  • step 2-user X上载另一个同名文件"abc1.jpg“,现在您将其再次保存在本地文件夹abc1.jpg中

你现在做什么?

我用这个来说明你的问题与Azure没有任何关系!

只是在保存文件时不要依赖原始文件名。无论你在哪里保存它们。生成随机名称(例如GUID)并将原始名称“附加”为元数据。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16958629

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档