Azure 移动或重命名时是否可以保留blob版本?
我正在使用Azure存储的最新.NET SDK以及Blob存储中启用的版本。我可以使用我的C代码上传、列出所有版本的blob。我想在移动或重命名的情况下维护这些版本。有可能自动做这样的事情吗?如果没有,是否有任何解决方法可能会有所帮助?Azure blob本机支持,您可以通过以下方式启用它 您还可以通过维护旧blob版本。Azure 移动或重命名时是否可以保留blob版本?,azure,azure-storage-blobs,azure-storage-account,Azure,Azure Storage Blobs,Azure Storage Account,我正在使用Azure存储的最新.NET SDK以及Blob存储中启用的版本。我可以使用我的C代码上传、列出所有版本的blob。我想在移动或重命名的情况下维护这些版本。有可能自动做这样的事情吗?如果没有,是否有任何解决方法可能会有所帮助?Azure blob本机支持,您可以通过以下方式启用它 您还可以通过维护旧blob版本。 如果您使用的是.NET SDK,可能会有所帮助。使用文档解决了这个问题。以下是我的代码片段: var files = blobContainerClient.GetBlobs
如果您使用的是.NET SDK,可能会有所帮助。使用文档解决了这个问题。以下是我的代码片段:
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();
}
}
}
此处删除了一些特定于项目的代码,因此希望使用此代码的任何人,请初始化相应的类。是的,在移动或重命名Blob时,这些版本不会被保留。这就是我需要解决的问题。谢谢@SVG,我认为手动创建Blob快照可以满足您的要求。谢谢,我将看看这个选项。将在这里更新它的运行方式。