我正在四处乱跑,试图找出代码以将文件从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)找不到。


但是,如果容器不是私有的,它将正常工作。

任何帮助,不胜感激,谢谢。

最佳答案

请尝试以下代码:

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,因此需要对请求进行身份验证。使用thisCloudBlockBlob构造函数可以解决这一问题。

10-08 07:50
查看更多