如何用一些简短的方法将所有文件和文件夹从一个文件夹移动到php中S3存储桶的另一个文件夹?

2022-08-30 18:12:30

我必须在php中移动S3存储桶的一个文件夹或另一个文件夹中的所有文件和文件夹。我知道做同样的事情的一种方法是 - 1)从源文件夹中获取所有对象列表2)将所有对象复制到目标文件夹3)从源文件夹中删除所有对象

有没有其他简短的方法可以做同样的事情。如果是这样,那么请与我分享,将不胜感激,提前感谢


答案 1

有没有其他捷径可以做同样的事情

没有捷径可以做到这一点。

原因如下:

文件夹的概念是控制台所独有的。Amazon S3 使用存储桶和对象,但该服务本身不支持文件夹,也不提供任何用于处理文件夹的 API。

但是,为了帮助您组织数据,Amazon S3 控制台支持文件夹的概念。[...]

重要

在 Amazon S3 中,您可以创建存储桶并存储对象。该服务不支持您在典型文件系统中看到的任何层次结构。

控制台使用对象键名称来派生文件夹层次结构。它在键名中使用“/”字符来推断层次结构

http://docs.aws.amazon.com/AmazonS3/latest/UG/about-using-console.html

在S3中,将文件“移动”到另一个“文件夹”实际上无法完成。它只能通过制作每个对象的副本来模拟,为每个对象提供新的“层次结构”的新键名,然后删除原始文件。S3 甚至不支持重命名单个对象。重命名也可以通过使用新名称创建副本,然后删除原始名称来完成。控制台提供了支持这些操作的外观,但实际上它只模拟它们,如上所述。这是S3设计的一个刻意部分。


答案 2

欢迎您,来自未来!

亚马逊现在已经提供了此功能。

选择您的存储桶,然后在要移动的文件或“文件夹”(仍然是平面结构)旁边选中复选框。

现在点击操作下拉列表,然后单击“移动”。

enter image description here


推荐