好吧,这有点背景:2年前,我在Zend 1中编写了一个过程,使用它的S3库,在特定的存储桶和前缀路径(又名文件夹)中查找子文件夹和文件,以及将它们迁移到另一组文件夹。
两年前效果很好。
现在,由于某种原因,它像以前一样停止工作(这是我们两年来第一次使用它,但是S3库没有更改)。
所以,我使用的代码是这样的:
$list = $this->s3->getObjectsByBucket($this->bucket, array('prefix'=>'this-folder/pending/'));
foreach( $list as $name)
{
// Skip folders (this part is new)
if( !$this->s3->getObject($this->bucket.'/'.$name))
continue;
// Migrate file
$this->migrate($this->bucket.'/'.$name);
}
现在,我必须添加跳过文件夹的一些代码,因为在此之前,我认为对象数组首先是文件,然后是文件夹。 (现在是文件夹,然后是该文件夹中的所有文件,等等。)
但是在此之前,它将自动删除空文件夹。现在不是。
首先,这种行为在最近两年内在S3上有所改变吗?还是这是我需要更新的文件夹设置?
第二,Zend 1的S3实现中有没有办法检测空文件夹?