Azure Resource Manager .NET SDK, копирование VHD/BLOB-объектов

Я пытаюсь найти способ скопировать виртуальный жесткий диск в мою учетную запись хранения в моей группе ресурсов.

У меня есть Sas Uri VHD.

Я Powershell я бы использовал:

Start-AzureStorageBlobCopy `
-AbsoluteUri $sas.AccessSAS `
-DestContainer 'vhds' -DestContext $destContext -DestBlob 'MyDestinationBlobName.vhd'

сделать это.

Кажется, я не могу найти способ сделать это из .NET SDK Azure Resource Manager. https://github.com/Azure/azure-sdk-for-net/tree/AutoRest/src/ResourceManagement/

Есть ли способ скопировать большой двоичный объект с помощью .NET?


person experimenter    schedule 04.04.2017    source источник


Ответы (1)


Есть ли способ скопировать большой двоичный объект с помощью .NET?

Вам нужно будет использовать Azure Storage SDK for .Net (Github|Nuget).

using Microsoft.WindowsAzure.Storage;
using Microsoft.WindowsAzure.Storage.Auth;
using Microsoft.WindowsAzure.Storage.Blob;

    static void CopyBlobUsingSasExample()
    {
        var destinationAccountName = "";
        var destinationAccountKey = "";
        var destinationAccount = new CloudStorageAccount(new StorageCredentials(destinationAccountName, destinationAccountKey), true);
        var destinationContainerName = "vhds";
        var destinationContainer = destinationAccount.CreateCloudBlobClient().GetContainerReference(destinationContainerName);
        destinationContainer.CreateIfNotExists();
        var destinationBlob = destinationContainer.GetPageBlobReference("MyDestinationBlobName.vhd");
        var sourceBlobSasUri = "";
        destinationBlob.StartCopy(new Uri(sourceBlobSasUri));
        //Since copy operation is async, please wait for the copy operation to finish.
        do
        {
            destinationBlob.FetchAttributes();
            var copyStatus = destinationBlob.CopyState.Status;
            if (copyStatus != CopyStatus.Pending)
            {
                break;
            }
            else
            {
                System.Threading.Thread.Sleep(5000);//Sleep for 5 seconds and then fetch attributes to check the copy status.
            }
        } while (true);
    }
person Gaurav Mantri    schedule 04.04.2017