Azure 存储模拟器 - 如何指定分层路径?

Azure Storage Emulator - How to specify hierarchical path?

我正在使用 Azure 存储模拟器 4.1.0.0 和 VS 2013。

如何从开发箱上传文件并在 Azure Blob 存储上指定层次路径?

我正在使用 VS 2013 和 Azure 存储模拟器 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 存储指定所需的分层路径?

谢谢!

假设您希望容器中的路径为 AzureCloudService1\DataBlobStorage1\HelloWorld2.png,这就是您必须做的:

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

啊... GetBlockBlobReference就是设置blob名称的,可以随意命名。实际文件可以从其他物理位置读入 fileStream 并上传到 blob,如下所示:

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