从amazon s3 buckets子文件夹.Net获取文件

时间:2015-06-08 11:23:38

标签: .net amazon-web-services amazon-s3

我正在从亚马逊s3下载一些像这样的文件

 private static readonly IAmazonS3 _amazonS3Client = AWSClientFactory.CreateAmazonS3Client(
        AccessKey,
        SecretKey,
        Config
        );
  var request = new ListObjectsRequest {BucketName = BucketName};

        ListObjectsResponse response = _amazonS3Client.ListObjects(request);
        foreach (S3Object o in response.S3Objects)
        {
            var objRequest = new GetObjectRequest
            {
                BucketName = BucketName,
                Key = o.Key

            };
            GetObjectResponse objResponse = _amazonS3Client.GetObject(objRequest);
            objResponse.WriteResponseStreamToFile(ConfigurationManager.AppSettings["TargetLocation"] + o.Key);
        }

这很好用,现在我在Bucket中创建了一个文件夹,我只想下载该存储桶中的文件。任何人都可以指出实现这一目标的正确方法吗?

1 个答案:

答案 0 :(得分:3)

只需将您的桶名设置为:bucketname / foldername。

所以如果你有一个名为'MyBucket'的存储桶和该存储桶中名为MyFolder的文件夹,那么你可以这么做:

var objRequest = new GetObjectRequest
            {
                BucketName = "MyBucket/MyFolder",
                Key = o.Key

            };