gpt4 book ai didi

asp.net-mvc - 如何下载Azure容器目录中的所有文件?

转载 作者:行者123 更新时间:2023-12-03 18:38:58 28 4
gpt4 key购买 nike

我有一个 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;
}

这样,我只得到一个文件。但我需要查看并下载 http://myaccount.windowsazure.blob.net/MyProtocolID-01/MyDocumentID-01/ 内的所有文件

谢谢

最佳答案

添加更多详细信息。您将需要使用客户端库提供的列表 API 之一:CloudBlobContainer.ListBlobs()、CloudBlobContainer.ListBlobsSegmented() 和 CloudBlobContainer.ListBlobsSegmentedAsync()(以及各种重载)。您可以指定目录前缀,该服务将仅枚举与该前缀匹配的 blob。然后您可以下载每个 blob。您可能还想查看“useFlatBlobListing”参数,具体取决于您的场景。 http://msdn.microsoft.com/en-us/library/microsoft.windowsazure.storage.blob.cloudblobcontainer.listblobs.aspx

此外,AzCopy(请参阅 http://blogs.msdn.com/b/windowsazurestorage/archive/2012/12/03/azcopy-uploading-downloading-files-for-windows-azure-blobs.aspx)还支持下载给定目录路径中的所有 blob 的这种场景。

关于asp.net-mvc - 如何下载Azure容器目录中的所有文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19962431/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com