Blob中的Azure存储副本

时间:2016-08-28 15:47:30

标签: azure azure-storage azure-mobile-services azure-media-services

我在转换此处所述的控制台应用时遇到问题。Copying an existing blob into a media services asset要在移动应用服务上运行

我有一些喜欢明智和代码明智的参考,但有以下问题

// Display the size of the source blob.
Console.WriteLine(sourceBlob.Properties.Length);
Console.WriteLine(string.Format("Copy blob '{0}' to '{1}'", sourceBlob.Uri, destinationBlob.Uri));

// The line below gives the following error:
destinationBlob.StartCopyFromBlob(new Uri(sourceBlob.Uri.AbsoluteUri + signature));
  

块引用   'ICloudBlob'不包含'StartCopyFromBlob'的定义,也没有接受第一个类型'ICloudBlob'的扩展方法'StartCopyFromBlob'(你是否缺少using指令或汇编引用?

这是因为我使用的是存储客户端版本7并且该方法已被删除吗?

如果是这样,我可以使用一种新的方法组合来获得类似的结果吗?

2 个答案:

答案 0 :(得分:3)

release notes,您可以找到:

  

Blob:删除了不推荐使用的(Begin / End)StartCopyFromBlob(Async)API,转而使用(Begin / End)StartCopy(Async)API。

因此,请使用StartCopy代替StartCopyFromBlob。

答案 1 :(得分:1)

正如赵肇星所说,ICloudBlob'不包含' StartCopy'的定义。根据您的代码,您可以找到' StartCopy'在CloudBlockBlob班。

根据您提到的教程,您可以修改destinationBlob的类型:

CloudBlockBlob destinationBlob = destinationContainer.GetBlockBlobReference(sourceBlob.Name);

而不是:

ICloudBlob destinationBlob = destinationContainer.GetBlockBlobReference(sourceBlob.Name);

注意:CloudBlobContainer.GetBlockBlobReference会返回CloudBlockBlob个对象。

然后您可以运行以下代码:

destinationBlob.StartCopy(new Uri(sourceBlob.Uri.AbsoluteUri + signature));