2

У меня возникла проблема с преобразованием приложения консоли, описанного здесь. Copying an existing blob into a media services asset работать на подвижной службе приложенияAzure Storage Copy From Blob

У меня есть все, что равноценная ссылка, мудрая и код мудрых, но имеет следующую проблему

// 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)); 

BLOCKQUOTE «ICloudBlob» не содержит определение для «StartCopyFromBlob» и не может быть найден метод расширения «StartCopyFromBlob», принимающий первый аргумент типа «ICloudBlob» (вам не хватает директивы использования или ссылки на сборку?

Это потому, что я использую версию 7 клиента хранилища и метод был удален?

Если есть новый метод сочетания методов, которые я могу использовать для достижения аналогичного результата?

ответ

3

С release notes, вы можете найти:

Blobs: Удалены осуждается (Begin/End) StartCopyFromBlob (Асинхронный) APIs в пользу использования (Begin/End) StartCopy (Асинхронный) API.

Поэтому, вместо StartCopyFromBlob, используйте StartCopy.

+0

Но интерфейс I cloudblob не имеет метод, называемый Startcopy. https://msdn.microsoft.com/library/azure/microsoft.windowsazure.storage.blob.icloudblob.aspx –

+1

Он не существует в интерфейсе ICloudBlob, он существует в базовом классе CloudBlob. –

1

Поскольку Zhaoxing Lu сказал, что «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)); 
Смежные вопросы