Azure存储私有容器blob到MemoryStream

本文关键字:blob MemoryStream 存储 Azure | 更新日期: 2023-09-27 18:04:16

我正在绕着圈子跑,试图找出从Azure存储私有容器下载文件到MemoryStream的代码。

我到目前为止有这个…

StorageCredentials storageCredentials = new StorageCredentials(*my StorageAccountName*, *my StorageAccountAccessKey*);
CloudStorageAccount storageAccount = new CloudStorageAccount(storageCredentials, true);
Uri blobUri = new Uri(featureFile.URL);
CloudBlockBlob blob = new CloudBlockBlob(blobUri);
MemoryStream mem = new MemoryStream();  
blob.DownloadToStream(mem);

最后一行出现错误…

远程服务器返回一个错误:(404)Not Found.

但是,当容器不是私有容器时,它将正常工作。

任何帮助都非常感谢,谢谢。

Azure存储私有容器blob到MemoryStream

请尝试以下代码:

StorageCredentials storageCredentials = new StorageCredentials(*my StorageAccountName*, *my StorageAccountAccessKey*);
CloudStorageAccount storageAccount = new CloudStorageAccount(storageCredentials, true);
Uri blobUri = new Uri(featureFile.URL);
CloudBlockBlob blob = new CloudBlockBlob(blobUri, storageCredentials);//added storageCredentials
MemoryStream mem = new MemoryStream();  
blob.DownloadToStream(mem);

由于容器具有Private ACL,因此需要对请求进行身份验证。使用CloudBlockBlobthis构造器来处理这个问题