如何在windows azure中重命名容器名称?

时间:2012-09-11 13:18:55

标签: c# azure azure-storage

有没有办法在windows azure中重命名blob容器名?

5 个答案:

答案 0 :(得分:12)

<强>更新

请参阅以下 Nuri Tasdemir 的回答。


没有。您无法在Windows Azure中重命名Blob容器。你可以做的是创建一个新的blob容器,其中包含新名称,并将旧Blob容器中的blob复制到新容器。复制blob后,您可以删除旧的Blob容器。请注意,如果您在Cloud中执行复制blob,则此操作是异步的。因此,请确保在删除blob容器之前完全复制blob。

答案 1 :(得分:0)

不。您无法在Windows Azure中重命名Blob容器。

要从旧存储复制到新存储的代码

AzCopy / Source:https://oldstorage.blob.core.windows.net/oldstorage / Dest:https://newstorage.blob.core.windows.net/newstorage / SourceKey:sourcekey / DestKey:destkey / S / XO

答案 2 :(得分:0)

我在Storage Explorer v1.15.1中找不到重命名功能,但是我确实使用了clone选项来创建副本并删除旧容器。

Screenshot Microsoft Azure Storage Explorer

答案 3 :(得分:-1)

结帐listing container。您可以列出所有blob并轻松将它们复制到新容器中。

那里还有更多有用的东西。

答案 4 :(得分:-1)

此RenameBlob方法允许您重命名Azure容器中的文件夹或文件。

  • album1 / image1.jpg - &gt; album2 /image1.jpg
  • album1 / image1.jpg - &gt; album1 /的 image2.jpg

HTH

public class AzureStorageService
{
    readonly CloudStorageAccount _storageAccount = CloudStorageAccount.Parse(ConfigurationManager.ConnectionStrings["StorageConnectionString"].ConnectionString);

    public void RenameBlob(string oldName, string newName)
    {
        var blobClient = _storageAccount.CreateCloudBlobClient();
        var container = blobClient.GetContainerReference("MyContainer");

        var blobs = container.GetDirectoryReference(oldName).ListBlobs();

        foreach (var item in blobs)
        {
            string blobUri = item.Uri.ToString();

            var oldBlob = container.GetBlockBlobReference(blobUri);
            var newBlob = container.GetBlockBlobReference(blobUri.Replace(oldName, newName));

            newBlob.StartCopyFromBlob(oldBlob);

           oldBlob.Delete();
        }
    }
}