将Azure CloudPageBlob复制到CloudBlockBlob

时间:2019-03-03 16:39:24

标签: c# blob storage azcopy

Azure存储帐户中有大量Azure页面Blob,需要复制以阻止Blob,以便可以将它们从“冷”设置为“存档”存储层。页面Blob由SQL Server(2016年前)BACKUP TO URL创建。

我曾就此与Microsoft进行过交谈,他们建议将Azure File blob作为AzCopy的垫脚石,例如页面Blob->块Blob(文件存储)->块Blob(Blob存储)。在基于AzCopy或基于GUI的Azure工具中,所有这些都可以正常工作,但是我需要使其自动化并具有一定的弹性。

我遇到的问题是我无法获取Cloud 页面 Blob复制到Cloud 阻止 Blob 不管我怎么投这是一个简化的示例,用于显示(缺少)进度以及我如何进行此操作。我将其包装在生产中的Task <>中,但无法使.StartCopy正常工作。有任何想法吗?

    CredentialEntity ce = Utils.GetBlobCredentials();
    StorageCredentials sc = new StorageCredentials(ce.Name, ce.Key);

    CloudStorageAccount storageAccount = 
new CloudStorageAccount(new StorageCredentials(ce.Name, ce.Key), true);

    CloudBlobClient cloudBlobClient = storageAccount.CreateCloudBlobClient();

    CloudBlobContainer sourceContainer = cloudBlobClient.GetContainerReference(@"archive");
    CloudBlobContainer targetContainer = cloudBlobClient.GetContainerReference(@"xfer");

    CloudPageBlob source = sourceContainer.GetPageBlobReference("test.bak");
    CloudBlockBlob target = targetContainer.GetBlockBlobReference("new.bak");

    //target.StartCopy(source);

    //target.StartCopyAsync()

0 个答案:

没有答案
相关问题