Php 如何在S3中列出两个特定文件夹之间的对象
我想知道是否可以列出两个特定文件夹之间的对象Php 如何在S3中列出两个特定文件夹之间的对象,php,amazon-web-services,amazon-s3,Php,Amazon Web Services,Amazon S3,我想知道是否可以列出两个特定文件夹之间的对象 $objects = $client->getIterator('ListObjects', array( "Bucket" => $bucket, "Prefix" => "2016/09/23" )); 上面的代码将列出该特定文件夹的对象。但我需要的是,如果有一种方法可以列出两个文件夹之间的对象。i、 e.,2016/09/23至2017/1/14。我想要这两个文件夹之间的对象列表。有可能吗???我不知道亚马
$objects = $client->getIterator('ListObjects', array(
"Bucket" => $bucket,
"Prefix" => "2016/09/23"
));
上面的代码将列出该特定文件夹的对象。但我需要的是,如果有一种方法可以列出两个文件夹之间的对象。i、 e.,2016/09/23至2017/1/14。我想要这两个文件夹之间的对象列表。有可能吗???我不知道亚马逊是否提供了这一功能,我怀疑它没有,所以一个解决方案是循环所有日期:
$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);
}
}
$start_date='2016/09/23';
$end_日期='2017/1/14';
$all_objs=array();
$date=$start\u date;
while(strotime($date)getIterator('ListObjects',数组(
“桶”=>美元桶,
“前缀”=>$date,
));
foreach($ret_objs作为$obj){
数组推送($all_obj,$obj);
}
}
我没有一个S3实例要测试,但是你可以在你这边检查和调整它
另外,在构建日期之前,请确保设置时区
date\u default\u timezone\u set()
。而(strotime($start\u date))您只需返回所有对象的列表,并在自己的代码中执行日期检查。这样会更快,因为它会有更少的API调用(取决于您拥有的文件数量)。