Azure 存储专用容器 blob 到 MemoryStream

Azure Storage private container blob to MemoryStream

我在运行 兜圈子,试图编写代码,将文件从 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);

最后一行出错...

The remote server returned an error: (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,请求需要进行认证。使用 this constructor of CloudBlockBlob 可以解决这个问题。