我正在尝试获取AWS Bucket目录中子目录中的文件名。我可以得到子目录的名称,但是我不知道如何在子目录下列出文件。
以下代码获取子目录名称,但获得这些子目录中的文件名
var accessKey = "my key";
var secretKey = "my secret key";
IAmazonS3 client = new AmazonS3Client(accessKey, secretKey, RegionEndpoint.USEast1);
S3DirectoryInfo dir = new S3DirectoryInfo(client, "mybucketname", "foldername");
foreach (IS3FileSystemInfo file in dir.GetFileSystemInfos())
{
filename= file.Name;
}
谢谢
答案 0 :(得分:1)
我正在使用nuget软件包(.net核心,但语法应该相似,因为我不久前迁移到了.net核心)
与
public async Task<List<string>> ListS3ObjectsNames(string bucket, string prefix)
{
var awsAccessKey = "dasdasda";
var awsSecretKey = "asdadasdsecret";
var region = Amazon.RegionEndpoint.USEast1;
using (var client = new AmazonS3Client(awsAccessKey, awsSecretKey, region))
{
var response = await client.ListObjectsAsync(bucket, prefix);
return response.S3Objects.Count == 0 ? new List<string>() : response.S3Objects.Select(x => x.Key).ToList();
}
}
在asp.net 4.5到4.6中,如果我记得正确的方法是 ListObjects 并且是非异步的。