AWS获取S3中文件夹内的所有对象

时间:2015-04-29 03:52:49

标签: php amazon-web-services amazon-s3

我想获取存储在文件夹中的对象的所有URL。我只有一个级别的文件夹,所以我不关心嵌套文件夹。我已经阅读了S3的PHP客户端API(http://docs.aws.amazon.com/aws-sdk-php/v2/api/class-Aws.S3.S3Client.html),但似乎无法找到实现此目的的方法。

我从StackOverflow中找到了这段代码来获取内容的大小:

List<Bucket> buckets = s3.listBuckets();
long totalSize  = 0;
int  totalItems = 0;
for (Bucket bucket : buckets)
{
    ObjectListing objects = s3.listObjects(bucket.getName());
    do {
        for (S3ObjectSummary objectSummary : objects.getObjectSummaries()) {
            totalSize += objectSummary.getSize();
            totalItems++;
        }
        objects = s3.listNextBatchOfObjects(objects);
    } while (objects.isTruncated());
    System.out.println("You have " + buckets.size() + " Amazon S3 bucket(s), " +
                    "containing " + totalItems + " objects with a total size of " + totalSize + " bytes.");
}

哪个接近我想要的东西,除了我不想要桶中的所有物品,我想要某个桶的文件夹中的所有物品。我的第二个问题是我需要花多少钱来完成这项工作,因为似乎没有使用get / put命令,所以我不确定亚马逊为此操作收取多少费用?

1 个答案:

答案 0 :(得分:1)

ListObjects takes a prefix argument。该前缀是存储桶中的“目录”。