- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 Azure 存储 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
}
});
主要问题是当我再次上传相同的文件时。它正在覆盖该文件。是否可以添加任何属性或 header 以防止覆盖。我希望重复的文件也能被存储而不被覆盖
请帮我解决这个问题。提前致谢。
最佳答案
Is there any property or header that can be added to prevent overwriting.
绝对是的。您可以使用 *
作为值指定 EtagNonMatch
访问条件。来自文档link
:
If the ETag for the blob does not match the specified ETag. Specify the wildcard character (*) to perform the operation only if the resource does not exist, and fail the operation if it does exist.
如果存在同名 Blob,这将导致 Blob 上传失败。访问条件可以在 accessConditions
options 参数中指定。
您可以在此处详细了解 Blob 存储中的条件 header 支持:https://learn.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations .
I want duplicate files also to be stored without overwriting
这是您需要自己处理的事情。如果由于 Blob 已存在而导致 Blob 上传失败,您将收到前提条件失败(HTTP 状态代码 412)
错误。根据此错误,您需要为 blob 起一个新名称并重新上传。
更新
这是您可以使用的代码(未经测试):
var options = {
blockSize : customBlockSize,
accessConditions: {
EtagNonMatch: '*'
}
};
var speedSummary = blobService.createBlockBlobFromBrowserFile('mycontainer', file.name, file, options, function(error, result, response) {
finishedOrError = true;
if (error) {
// Upload blob failed
} else {
// Upload successfully
}
});
关于javascript - 将相同文件上传到 Azure Blob 存储而不覆盖?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61247516/
我是一名优秀的程序员,十分优秀!