c# - Azure 存储私有(private)容器 blob 到 MemoryStream

标签 c# azure model-view-controller azure-storage

我正在兜圈子,试图找出将文件从 Azure 存储私有(private)容器下载到 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.

但是,当容器不是私有(private)的时,它会正常工作而不会出现错误。

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

最佳答案

请尝试以下代码:

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 的构造函数负责处理这个问题。

关于c# - Azure 存储私有(private)容器 blob 到 MemoryStream,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31566314/

相关文章:

azure - Get-MsolUserRole Azure AD V2 cmdlet 等效项

ruby-on-rails - Rails 从另一个 Controller 更新模型

javascript - Web 方法返回 OK 但触发失败功能

css - MVC 验证只有边框高亮没有文本错误信息

azure - ADAL 到 MSAL - 权限不足,无法完成操作

security - Azure API 管理是否包含 WAF 功能?

c# - XML 还是 SQL?

c# - 减少函数大小

c# - 如何使用正则表达式消除字符串开头的引号?

c# - 如何使用 EF Core Oracle 生成和自动递增 Id