【问题标题】:How to download an Azure BLOB Storage file via URL如何通过 URL 下载 Azure BLOB 存储文件
【发布时间】:2019-11-05 15:49:06
【问题描述】:

我们在 Azure 存储上创建了一个文件夹结构,如下所示:

parentcontainer -> childcontainer -> {pdffiles are uploaded here}

我们有存储的.pdf 文件的 URL。我们不想硬编码任何容器名称,只需使用其 URL 下载文件即可。

我们目前的尝试:

CloudStorageAccount cloudStorageAccount = CloudStorageAccount.Parse(StorageConnectionString);
CloudBlobClient blobClient = cloudStorageAccount.CreateCloudBlobClient();
CloudBlobContainer cloudBlobContainer = blobClient.GetRootContainerReference();
CloudBlockBlob blockBlob = cloudBlobContainer.GetBlockBlobReference(pdfFileUrl);

var blobRequestOptions = new BlobRequestOptions
{
    RetryPolicy = new NoRetry()
};

// Read content
using (MemoryStream ms = new MemoryStream())
{
    blockBlob.DownloadToStream(ms, null, blobRequestOptions);
    var array = ms.ToArray();
    return ms.ToArray();
}     

但我们在这里收到“400 Bad Request”:

 blockBlob.DownloadToStream(ms, null, blobRequestOptions);

我们如何仅使用其 URL 下载 Azure BLOB 存储文件?

【问题讨论】:

    标签: c# azure azure-storage azure-blob-storage


    【解决方案1】:

    GetBlockBlobReference 将文件名作为其构造函数中的参数,而不是 URL。

    要通过 URL 下载 Azure BLOB 存储项目,您需要使用项目的 URL 自己实例化 CloudBlockBlob:

    var blob = new CloudBlockBlob(new Uri(pdfFileUrl), cloudStorageAccount.Credentials);
    

    然后可以使用您最初发布的代码下载此blob。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-04-25
      • 1970-01-01
      • 2021-12-08
      • 2018-05-04
      • 1970-01-01
      • 2015-08-22
      相关资源
      最近更新 更多