我正在寻找一种将 Azure 中的 blob 从一个容器移动到另一个容器的方法。我找到的唯一解决方案是使用 Azure 存储数据移动库,但这似乎适用于不同帐户。我想将同一帐户内的 blob 移动到另一个容器。
我没用过Azure Storage Data Movement Library
但我很确定它也可以在同一个存储帐户中工作。
回答你的问题,因为Move
Azure 存储本身不支持该操作,您可以通过调用来实现此操作Copy Blob
其次是Delete Blob
。一般来说Copy
操作是异步的,但是当在同一存储帐户中复制 blob 时,它是同步操作,即复制立即发生。请参阅下面的示例代码,它就是这样做的:
static void MoveBlobInSameStorageAccount()
{
var cred = new StorageCredentials(accountName, accountKey);
var account = new CloudStorageAccount(cred, true);
var client = account.CreateCloudBlobClient();
var sourceContainer = client.GetContainerReference("source-container-name");
var sourceBlob = sourceContainer.GetBlockBlobReference("blob-name");
var destinationContainer = client.GetContainerReference("destination-container-name");
var destinationBlob = destinationContainer.GetBlockBlobReference("blob-name");
destinationBlob.StartCopy(sourceBlob);
sourceBlob.Delete(DeleteSnapshotsOption.IncludeSnapshots);
}
但是,请记住,您仅使用此代码来移动同一存储帐户中的 blob。对于跨存储帐户移动 Blob,需要确保在删除源 Blob 之前完成复制操作。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)