18

Windows AzureでBLOBコンテナー名の名前を変更する方法はありますか?

4

5 に答える 5

26

これで、Microsoftの「 MicrosoftAzure Storage Explorer」(バージョン0.8.3以降)を使用してコンテナーの名前を変更できます。このツールを使用して、Azureテーブルとファイル共有の名前を変更することもできます。こちらのリリースノートをご覧ください

この機能の使用中は、次の免責事項があることに注意してください。

名前の変更は、新しい名前にコピーしてから、ソースアイテムを削除することで機能します。現在、BLOBコンテナーの名前を変更すると、コンテナーのプロパティとメタデータが失われ、BLOBが多数ある場合は時間がかかることがあります。

したがって、これは舞台裏での実際の名前変更ではなく、読み取り/書き込み/トランザクションのコストが発生します。

于 2016-08-16T11:04:22.753 に答える
23

アップデート

下記のヌリ・タスデミールからの回答をご覧ください。


いいえ。WindowsAzureでBLOBコンテナーの名前を変更することはできません。できることは、新しい名前で新しいBLOBコンテナーを作成し、古いBLOBコンテナーから新しいBLOBコンテナーにBLOBをコピーすることです。BLOBがコピーされたら、古いBLOBコンテナーを削除できます。CloudでBLOBのコピーを実行している場合、この操作は非同期であることに注意してください。したがって、BLOBコンテナを削除する前に、BLOBが完全にコピーされていることを確認してください。

于 2012-09-11T13:22:36.893 に答える
3

Storage Explorer v1.15.1で名前変更機能が見つかりませんでしたが、cloneオプションを使用してコピーを作成し、古いコンテナーを削除しました。

スクリーンショットMicrosoftAzureStorage Explorer

于 2020-09-16T09:38:14.687 に答える
1

いいえ。WindowsAzureでBLOBコンテナーの名前を変更することはできません。

古いストレージから新しいストレージにコピーするコード

AzCopy /ソース:https ://oldstorage.blob.core.windows.net/oldstorage /宛先 :https ://newstorage.blob.core.windows.net/newstorage / SourceKey:sourcekey / DestKey:destkey / S / XO

于 2018-11-14T04:15:02.180 に答える
-3

このRenameBlobメソッドを使用すると、Azureコンテナー内のフォルダーまたはファイルの名前を変更できます。

  • album1 / image1.jpg-> album2 /image1.jpg
  • album1 / image1.jpg-> 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();
        }
    }
}
于 2013-10-03T13:17:12.197 に答える