Azure存储专用容器blob到MemoryStream

spa*_*duk 3 c# model-view-controller azure azure-storage

我正在试图计算代码以将文件从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);
Run Code Online (Sandbox Code Playgroud)

它在最后一行出错......

远程服务器返回错误:(404)Not Found.

但是,当容器不是私有容器时,它将正常工作.

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

Gau*_*tri 11

请尝试以下代码:

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);
Run Code Online (Sandbox Code Playgroud)

由于容器具有PrivateACL,因此需要对请求进行身份验证.使用this构造函数来CloudBlockBlob处理.