1

s3 バケットから複数のファイルをダウンロードする方法。SOでより良いオプションが見つかりませんでした。これは、単一ファイルをダウンロードするための私のコードです。URL のリストを指定して、複数のファイルをダウンロードするためにループしています。

    public async Task Download(string url, Stream output)
    {
        var s3Uri = new AmazonS3Uri(url);
        GetObjectRequest getObjectRequest = new GetObjectRequest
        {
            BucketName = s3Uri.Bucket,
            Key = System.Net.WebUtility.UrlDecode(s3Uri.Key) 
        };

        using (var s3Client = new AmazonS3Client(s3Uri.Region))
        {
            // dispose the underline stream when writing to stream is done
            using (var getObjectResponse = await s3Client.GetObjectAsync(getObjectRequest).ConfigureAwait(false))
            {
                using (var responseStream = getObjectResponse.ResponseStream)
                {
                    await responseStream.CopyToAsync(output);
                }
            }
        }

        output.Seek(0L, SeekOrigin.Begin);
    }

s3 URL を指定してファイルをダウンロードする

var list = new List<Stream>();
foreach(var url in urls)
{
    var stream = new MemoryStream();
    await Download(url,ms);
    list.Add(stream);
}

S3 から一度に複数のファイルをダウンロードするためのより良いオプションはありますか?

4

1 に答える 1