0

在 Azure 存储帐户中加载需要复制到块 blob 的 Azure 页面 blob,以便可以将它们从“冷”存储层设置为“存档”存储层。页面 Blob 由 SQL Server(2016 年之前)备份到 URL 创建。

我就此与 Microsoft 进行了交谈,他们建议将 AzCopy 与 Azure File blob 作为垫脚石,例如 Page blob -> block blob(文件存储)-> block blob(Blob 存储)。这一切在 AzCopy 或基于 GUI 的 Azure 工具中运行良好,但我需要将其自动化并建立一些弹性。

我遇到的问题是,无论我如何投射,我都无法将 Cloud Page Blob 复制到 Cloud Block 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()
4

0 回答 0