我正在从亚马逊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中创建了一个文件夹,我只想下载该存储桶中的文件。任何人都可以指出实现这一目标的正确方法吗?
答案 0 :(得分:3)
只需将您的桶名设置为:bucketname / foldername。
所以如果你有一个名为'MyBucket'的存储桶和该存储桶中名为MyFolder的文件夹,那么你可以这么做:
var objRequest = new GetObjectRequest
{
BucketName = "MyBucket/MyFolder",
Key = o.Key
};