将相同文件上传到Azure Blob存储而不会覆盖?

问题描述 投票:0回答:1

我正在使用Azure Storage JavaScript客户端库通过参考此链接将文件上传到Azure存储https://dmrelease.blob.core.windows.net/azurestoragejssample/samples/sample-blob.html

下面的代码是我向azure存储空间上传的代码段(提取文件并将其存储在存储空间中)

var speedSummary = blobService.createBlockBlobFromBrowserFile('mycontainer', file.name, file, {blockSize : customBlockSize}, function(error, result, response) {
    finishedOrError = true;
    if (error) {
        // Upload blob failed
    } else {
        // Upload successfully
    }
});

主要问题是当我再次上传相同文件时。它正在覆盖文件。是否可以添加任何属性或标题以防止覆盖。我希望重复的文件也能被存储而不被覆盖。

[请帮助我解决此问题。预先感谢。

我通过使用此链接https://dmrelease.blob.core.windows.net/azurestoragejssample/samples/sample-blob...。我正在使用Azure Storage JavaScript客户端库将文件上传到Azure存储。

是否可以添加任何属性或标题以防止覆盖。

绝对。您可以将EtagNonMatch作为值指定*访问条件。从文档link

如果Blob的ETag与指定的ETag不匹配。指定通配符(*)仅在以下情况下才执行操作:资源不存在,并且如果存在则使操作失败。

如果存在相同名称的Blob,则会导致Blob上传失败。可以在link选项参数中指定访问条件。

您可以在accessConditions中了解有关Blob存储中条件标头支持的更多信息。

我希望重复的文件也能被存储而不被覆盖

这是您需要自己处理的事情。如果由于blob已经存在而导致blob上传失败,则会返回https://docs.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations错误。基于此错误,您需要为Blob命名一个新名称,然后重新上传。

javascript azure azure-storage-blobs
1个回答
0
投票

是否可以添加任何属性或标题以防止覆盖。

© www.soinside.com 2019 - 2024. All rights reserved.