我在转换此处所述的控制台应用时遇到问题。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并且该方法已被删除吗?
如果是这样,我可以使用一种新的方法组合来获得类似的结果吗?
答案 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));