【问题标题】:Get files names in sub-directories in a directory in AWS3 by C#通过C#获取AWS3目录中子目录中的文件名
【发布时间】:2019-07-02 20:43:10
【问题描述】:

我正在尝试获取 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;
}

谢谢

【问题讨论】:

  • 你试过new S3DirectoryInfo(client, "mybucketname", "foldername/subfolderName");吗?
  • 不,我会试试的。谢谢
  • 我试过了,还是不行。
  • 好吧,看看这个答案,它可能会有所帮助:stackoverflow.com/a/33547304/7167572

标签: c# amazon-web-services amazon-s3


【解决方案1】:

我正在使用 nuget 包(.net core,但语法应该相似,因为我不久前迁移到了 .net core)

  • AWSSDK.Core
  • AWSSDK.S3

 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 并且是非异步的。

【讨论】:

    猜你喜欢
    • 2014-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多