如何使用一些简短的方式在PHP中将S3存储桶中一个文件夹的所有文件和文件夹移动到另一个文件夹?
如何使用一些简短的方式在PHP中将S3存储桶中一个文件夹的所有文件和文件夹移动到另一个文件夹?
我需要在php中从一个文件夹或另一个文件夹移动S3存储桶中的所有文件和文件夹。我知道一个方法可以完成相同的操作:
1)从源文件夹中获取所有对象列表。
2)将所有对象复制到目标文件夹中。
3)删除源文件夹中的所有对象。
是否有其他简短的方式可以完成相同的操作。如果有,请与我分享,将不胜感激。提前感谢您。
admin 更改状态以发布 2023年5月24日
有没有其他的短方法来完成同样的事情
没有简化的方法来完成这项任务。
原因如下:
文件夹的概念是仅适用于控制台的。Amazon S3使用存储桶和对象,但该服务不原生支持文件夹,也没有提供任何API来处理文件夹。
然而,为了帮助您组织数据,Amazon S3控制台支持文件夹概念。[...]
重要
在Amazon S3中,您创建存储桶并存储对象。该服务不支持典型文件系统中看到的任何层次结构。
控制台使用对象键名称来派生文件夹层次结构。 它使用“/”字符在键名称中推断层次结构
http://docs.aws.amazon.com/AmazonS3/latest/UG/about-using-console.html
在S3中,实际上不能“移动”文件到另一个“文件夹”中。 它只能通过将每个单独的对象复制一次,将每个对象赋予新的键名称到新的“层次结构”,然后删除原对象来 模拟。 S3甚至不支持重命名单个对象。 改名也是通过复制并使用新名称来完成的,然后删除原来的对象。 控制台似乎支持这些操作,但实际上只是模拟,如上所述。 这是S3设计的有意部分。