2013-04-17 2 views
0

Теперь я о методе DownloadToStreamAsync в azure-sdk-winRT, но я не могу это реализовать. Как загрузить изображение из хранилища blob и сохранить его в локальной папке?Загрузить изображение из хранилища azure blob в winRt

+0

Почему вы не можете реализовать это? Что вы пробовали? – Fishcake

+0

, потому что у меня плохие знания о потоке в .net и winRt. – Viacheslav

ответ

2

Вы можете попробовать что-то вроде ниже (очень голой реализации кости, без проверки ошибок):

 CloudStorageAccount account = new CloudStorageAccount(new StorageCredentials("accountname", "accountkey"), true); 
     var client = account.CreateCloudBlobClient(); 
     var container = client.GetContainerReference("containername"); 
     var blob = container.GetBlockBlobReference("imagename.ext");//e.g myimage.png 
     var file = await KnownFolders.PicturesLibrary.CreateFileAsync("imagename.ext", CreationCollisionOption.ReplaceExisting); 
     var stream = await file.OpenAsync(FileAccessMode.ReadWrite); 
     await blob.DownloadToStreamAsync(stream); 
     await stream.FlushAsync(); 
     stream.Dispose(); 

Несколько замечаний, хотя:

  • В приведенном выше примере записи в библиотеку «картинки». Вам нужно будет убедиться, что ваше приложение для Windows 8 имеет определенную для него возможность.
  • Попробуйте использовать функции общей доступности доступа вместо перехода на учетные данные учетной записи, особенно если вы разрешаете пользователям вашего приложения загружать изображения из вашей учетной записи хранилища.
+0

работает ли этот метод с текстовым файлом? – Viacheslav

+0

Да. Вы в основном читаете поток байтов из блоба и записываете этот поток в файл на вашей локальной машине. Поток может представлять что угодно (двоичные данные, текстовые данные и т. Д.). В этом примере я выбрал файл изображения. –

+0

Как вы думаете, можем ли мы реализовать загрузку данных из хранилища blob с помощью класса PathIO в winRT? – Viacheslav

Смежные вопросы