AWS S3 .Net列表对象仅第3级

时间:2018-07-19 07:42:45

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

我正在尝试从我的S3存储桶(仅某个文件夹的第3级)列出对象:

bucket
   samples
      XXXX
        XXXX_XXXXX
        XXXX_XXXXX
      YYYY
        YYYY_YYYYY
        YYYY_YYYYY

仅XXXX_XXXXX和YYYY_YYYYY文件夹。

使用C#,这是我的代码:

 using (IAmazonS3 client = new AmazonS3Client("awsAccessKeyId", "awsSecretAccessKey", RegionEndpoint.GetBySystemName("eu-central-1")))
            {
                ListObjectsRequest request = new ListObjectsRequest
                {
                    BucketName = bucketName,
                    Prefix = "samples/",
                    Delimiter = "/"
                };
                do
                {
                    ListObjectsResponse response = client.ListObjects(request);

                    if (response.S3Objects.Count() > 0)
                    { // CODE }

response.S3Objects为空。如果我从“请求”中删除定界符,则返回所有对象,并且加载时间太长。 我一直在关注AWS S3 docs,但它什么也没返回。请帮助我了解问题所在。非常感谢。

1 个答案:

答案 0 :(得分:1)

您需要查看的是CommonPrefixes,而不是S3ObjectsCommonPrefixes为您提供所有直到 next 分隔符的前缀,您可以使用每个前缀来重复请求,每次都更深一层。