微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

移动或重命名时可以保留 blob 版本吗?

如何解决移动或重命名时可以保留 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 举报,一经查实,本站将立刻删除。