如何解决移动或重命名时可以保留 blob 版本吗?
我正在使用适用于 Azure 存储的最新 .NET SDK 和 Blob 存储中的启用版本。我可以使用我的 C# 代码上传、列出所有版本的 blob。我想在移动或重命名的情况下维护版本。是否有可能自动做这样的事情?如果没有,是否有任何可能有帮助的解决方法?
解决方法
使用文档弄清楚了。以下是我的代码片段:
var files = blobContainerClient.GetBlobs(BlobTraits.Metadata,BlobStates.Version,prefix: prefix);
foreach (BlobItem file in files)
{
var versionFile = blobContainerClient.GetBlobClient(file.Path).WithVersion(file.versionId);
if (file != null)
{
string newFileName = file.Name.Split("/").Last();
string newPath = $"{destFolderPath}/{newFileName}";
BlobClient newFile = rootDir.GetBlobClient(newPath);
await newFile.StartCopyFromUriAsync(file.Uri);
fileCount++;
if (file == files.Last())
{
var rootFile = blobContainerClient.GetBlobClient(file.Path);
rootFile.DeleteIfExists();
}
}
}
在这里删除了一些项目特定的代码,所以任何想要使用它的人,请初始化适当的类。
,Azure blob 本身支持 blob versioning,您可以按照 this doc 启用它。
您还可以通过 creating Blob snapshots 维护旧的 blob 版本。 如果您使用 .NET SDK,this official doc 可能会有所帮助。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。