gog*_*gog 5 asp.net-mvc azure azure-storage azure-blob-storage
我有一个 aspnet 应用程序,我将文件上传到 azure blob。我知道 azure 不会在容器中创建结构路径,而只是创建 blob,但您可以模拟在 uri 上放置“/”的目录。
即我上传文件列表,我的 uri 是这样的
http://myaccount.windowsazure.blob.net/MyProtocolID-01/MyDocumentID-01/FileName01.jpg http://myaccount.windowsazure.blob.net/MyProtocolID-01/MyDocumentID-01/FileName02.jpg http:// myaccount.windowsazure.blob.net/MyProtocolID-01/MyDocumentID-01/FileName03.jpg
我的下载方法:
public RemoteFile Download(DownloadRequest request)
{
var fileFinal = string.Format("{0}/{1}/{2}",request.IDProtocol ,request.IDDocument, request.FileName);
var blobBlock = InitializeDownload(fileFinal);
if (!blobBlock.Exists())
{
throw new FileNotFoundException("Error");
}
var stream = new MemoryStream();
blobBlock.DownloadToStream(stream);
return File(request.FileName)
}
private CloudBlob InitializeDownload(string uri)
{
var blobBlock = _blobClient.GetBlobReference(uri);
return blobBlock;
}
Run Code Online (Sandbox Code Playgroud)
这样,我只得到一个文件。但我需要查看并下载http://myaccount.windowsazure.blob.net/MyProtocolID-01/MyDocumentID-01/内的所有文件
谢谢
小智 2
添加更多细节。您将需要使用客户端库提供的列表 API 之一:CloudBlobContainer.ListBlobs()、CloudBlobContainer.ListBlobsSegmented() 和 CloudBlobContainer.ListBlobsSegmentedAsync()(以及各种重载)。您可以指定目录前缀,该服务将仅枚举与该前缀匹配的 blob。然后您可以下载每个 blob。您可能还想查看 \xe2\x80\x98useFlatBlobListing\xe2\x80\x99 参数,具体取决于您的情况。\n http://msdn.microsoft.com/en-us/library/microsoft.windowsazure.storage .blob.cloudblobcontainer.listblobs.aspx
\n\n此外,AzCopy(请参阅http://blogs.msdn.com/b/windowsazurestorage/archive/2012/12/03/azcopy-uploading-downloading-files-for-windows-azure-blobs.aspx)也支持这种情况下载给定目录路径中的所有 blob。
\n| 归档时间: |
|
| 查看次数: |
14652 次 |
| 最近记录: |