如何在S3中的两个特定文件夹之间列出对象

时间:2017-06-27 12:33:04

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

我想知道是否可以在两个特定文件夹之间列出对象。

$objects = $client->getIterator('ListObjects', array(
    "Bucket" => $bucket,
    "Prefix" => "2016/09/23"
)); 

上面的代码,会列出该特定文件夹的对象。但我需要的是,如果有办法列出两个文件夹之间的对象。即2016/09/23至2017/1/14。我想要这两个文件夹之间的对象列表。有可能??

1 个答案:

答案 0 :(得分:0)

我不知道亚马逊是否提供这个我怀疑它没有,所以一个解决方案是循环所有日期:

$start_date = '2016/09/23';
$end_date = '2017/1/14';
$all_objs = array();

$date = $start_date;

while (strtotime($date) <= strtotime($end_date)) {
    $date = date ("Y/m/d", strtotime("+1 day", strtotime($date)));
    $ret_objs = $client->getIterator('ListObjects', array(
                                              "Bucket" => $bucket,
                                              "Prefix" => $date,
                                        ));

    foreach ($ret_objs as $obj) {
         array_push($all_objs, $obj);
    }
}

我没有要测试的S3实例,但您可以检查并调整它。

还要确保在构建日期之前设置时区date_default_timezone_set();