我正在四处乱跑,试图找出代码以将文件从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,因此需要对请求进行身份验证。使用this
的CloudBlockBlob
构造函数可以解决这一问题。