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.
但是,当容器不是私有容器时,它将正常工作。
任何帮助都非常感谢,谢谢。
请尝试以下代码:
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,因此需要对请求进行身份验证。使用CloudBlockBlob
的this
构造器来处理这个问题