Azure 移动或重命名时是否可以保留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

我正在使用Azure存储的最新.NET SDK以及Blob存储中启用的版本。我可以使用我的C代码上传、列出所有版本的blob。我想在移动或重命名的情况下维护这些版本。有可能自动做这样的事情吗?如果没有,是否有任何解决方法可能会有所帮助?

Azure blob本机支持,您可以通过以下方式启用它

您还可以通过维护旧blob版本。
如果您使用的是.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快照可以满足您的要求。谢谢,我将看看这个选项。将在这里更新它的运行方式。