【问题标题】:Simultaneous upload of same file to Azure Blob Storage将同一文件同时上传到 Azure Blob 存储
【发布时间】:2018-06-01 10:18:06
【问题描述】:
我可能有两个用户独立使用应用程序将一组文件上传到 Azure 存储 [Blobs]。上传的两组文件有可能具有一个或多个公共文件。这意味着可以从应用程序的每个实例同时上传相同的文件。
- 是否第一次上传成功,导致另一次上传失败,因为已经存在同名文件?
- 还是第一个开始的上传成功,导致另一个上传在检测到另一个流被写入完全相同的位置时立即失败?
【问题讨论】:
标签:
azure
file-upload
azure-blob-storage
【解决方案1】:
两个问题的答案都是否。Azure 存储的默认行为是在存在同名 blob 时覆盖 blob。因此,在您的场景中,第一个用户上传的 blob 将被第二个用户上传的 blob 覆盖。
但是,blob 上传操作支持Conditional Request Headers,您可以通过在上传请求中包含值为* 的If-None-Match 请求标头来要求Azure 存储使第二次上传操作失败。那么上传请求只有在 blob 不存在的情况下才会成功。