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

时间:2016-10-06 05:55:15

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

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

还有其他简短的方法可以做到这一点。如果是,那么请与我分享,我们将不胜感激,提前致谢

3 个答案:

答案 0 :(得分:4)

  

还有其他简短方法可以做同样的事情

没有简短的方法可以做到这一点。

原因如下:

  

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

     

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

     

重要

     

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

     

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

     

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

"移动"文件到另一个"文件夹,"在S3中,实际上无法做到。它只能是模拟,通过制作每个单独对象的副本,为每个对象赋予新的"层次结构的新密钥名称,"然后删除原件。 S3甚至不支持重命名单个对象。重命名也可以通过使用新名称进行复制,然后删除原始文件来完成。控制台给出了支持这些操作的外观,但它实际上只模仿它们,如上所述。这是S3设计的一个有意识的部分。

答案 1 :(得分:2)

按照此链接将文件夹和文件从一个存储桶移动到另一个存储桶:

http://www.codewithasp.net/2015/03/aws-s3-move-files-folders-from-dotnet-sdk.html

答案 2 :(得分:2)

欢迎,来自未来!

亚马逊现已提供此功能。

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

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

enter image description here