【发布时间】:2019-11-21 15:10:30
【问题描述】:
我正在使用 .Net Core 3.0 从 S3 存储桶下载一些文件。
bucket的结构如下:
my_folder
prod
year
month
day
hour
minute
- joe
- jack
- john
- jacob
我创建了一个循环,可以成功下载最后十分钟的文件:
foreach(string objectKey in getObjectKeyNames(dispatch))
{
request1.Key = objectKey;
try
{
using (GetObjectResponse response1 = await s3Client.GetObjectAsync(request1))
{
CancellationTokenSource source = new CancellationTokenSource();
CancellationToken token = source.Token;
await response1.WriteResponseStreamToFileAsync(@"C:\temp\" + objectKey, false, token);
}
}
catch(Exception e)
{
Console.WriteLine("error");
}
}
我遇到的问题是:
await response1.WriteResponseStreamToFileAsync(@"C:\temp\" + objectKey, false, token);
这会在 c:temp 中创建与上图相同的结构,而我只想下载所有文件,因为每个文件名在 c:temp 中都是唯一的。所以要清楚,我只想要 C:temp 中的所有文件,而不需要文件夹结构。
objectKey 是文件名,格式如下
my_folder/prod/2019/11/21/13/26/2019_11_21_13_26_joe.json
文件名是 2019_11_21_13_26_joe.json
希望这是有道理的
【问题讨论】: