2015-08-31 2 views
0

Я использую Azure Storage Emulator 4.1.0.0 и VS 2013.Azure Storage Emulator - Как указать иерархический путь?

Как загрузить файл из окна dev и указать иерархический путь на хранилище Azure Blob?

Я разрабатываю локально с VS 2013 & Azure Storage Emulator 4.1.0.0. Я хотел бы загрузить файл, но указать иерархический путь Blob к файлу.

const string ImageToUpload = @"C:\Users\Me\Documents\Visual Studio 2013\Projects\AzureCloudService1\DataBlobStorage1\HelloWorld2.png"; 
CloudBlockBlob blockBlob = container.GetBlockBlobReference(ImageToUpload); 
await blockBlob.UploadFromFileAsync(ImageToUpload, FileMode.Open).ConfigureAwait(configureawait); 

Этот код загружает файл, но завершает сохранение физического пути источника к файлу. Как указать для хранения Azure Blob желаемый иерархический путь?

Thx!

ответ

0

Ах ... GetBlockBlobReference это то, что задает имя блоб, и он может быть назван желательно. Фактический файл может быть прочитан в FileStream из другого физического местоположения и загружен в сгусток, например, так:

string fileName = HttpContext.Current.Server.MapPath("~/App_Data/Clients/Clientname/" + "HelloWorld.png"); 
    CloudBlockBlob blockBlob = container.GetBlockBlobReference(@"Clients\ClientName"); 
    using (var fileStream = File.OpenRead(fileName)) 
    { 
     await blockBlob.UploadFromStreamAsync(fileStream); 
    } 
1

Представьте, что вы хотите, чтобы путь, чтобы быть в контейнере AzureCloudService1\DataBlobStorage1\HelloWorld2.png, это то, что вы должны сделать:

CloudBlockBlob blockBlob = container.GetBlockBlobReference("AzureCloudService1/DataBlobStorage1/HelloWorld2.png"); 
+1

ответ Gaurav является правильным, но обратите внимание, что «AzureCloudService1/DataBlobStorage1/HelloWorld2.png» на самом деле blob name, в Azure Blob Service нет реальной структуры каталогов. В иерархии службы Azure Blob существует только два уровня: container & blob. –

+0

Gaurav, спасибо, но мне нужно, чтобы исходный иерархический путь отличался от имени, которое я хочу иметь в контейнере. Например, на моем компьютере разработки, на котором запущен эмулятор Azure Storage, файл может находиться в папке «App_Data \ Clients \ ClientName» проекта. Если я предоставил C# физический путь, чтобы он мог прочитать файл, то этот физический путь (C: \ ...) завершается добавлением к имени blob. Я хочу назвать blob чем-то другим (и действительным). –

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