从亚马逊 s3 存储桶子文件夹 .Net 中获取文件

Ath*_*hul 2 .net amazon-s3 amazon-web-services

我正在像这样从亚马逊 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);
        }
Run Code Online (Sandbox Code Playgroud)

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

E.J*_*nan 5

只需将您的存储桶名称设置为:存储桶名称/文件夹名称。

因此,如果您有一个名为“MyBucket”的存储桶和该存储桶中名为 MyFolder 的文件夹,那么您可以这样做:

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

            };
Run Code Online (Sandbox Code Playgroud)