繁体   English   中英

如何通过URL下载Azure BLOB存储文件

[英]How to download an Azure BLOB Storage file via URL

我们在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错误请求”:

 blockBlob.DownloadToStream(ms, null, blobRequestOptions);

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

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM