php - 如何在PHP中将所有文件(不使用副本)和文件夹从一个文件夹移动到另一个S3存储桶,不能使用复制功能
问题描述
我必须将所有文件和文件夹从一个文件夹移动到 php 中的另一个 S3 存储桶。我知道做同样事情的方法是:
- 从源文件夹中获取所有对象列表
- 将所有对象复制到目标文件夹
- 从源文件夹中删除所有对象
然后我知道 AWS 没有具有某种层次结构的文件夹,它只是基于存储桶的,但现在有一天可以选择或更新。
我正在使用Amazon S3 PHP 类版本 0.4.0
解决方案
Amazon S3 没有“移动”命令。唯一的选择是复制然后删除。
复制命令告诉 S3 复制对象,而不需要任何下载。因此,它快速高效。
虽然 S3 不使用文件夹,但它确实理解prefixes。完整路径是文件名(键)的一部分。因此,例如:
- 如果你想移动
folder1/foo.txt
到folder2/foo.txt
,那么: - 复制
folder1/foo.txt
到folder2/foo.txt
- 删除
folder1/foo.txt
要将 AWS 与 PHP 结合使用,您应该使用官方的AWS SDK for PHP。
推荐阅读
- microsoft-graph-api - MS Graph List Mailfolders 未返回所有文件夹
- python - Python Twitter API:search_30_day
- javascript - 无法使用 $(card.type) 读取对象
- python - 处理 KeyError 的上下文管理器类
- http - 我应该使用哪个 RFC 将 SHA1 和 SHA2 身份验证引入 RTSP 1.0?
- docusignapi - 逐步将 Docusign api 与 Angular 应用程序集成
- java - 从矢量文件开始在处理中绘制蜘蛛网
- docker - 在 Kubernetes 上部署 Ghost 容器时出现奇怪的问题
- python-3.x - 不确定的进度条不移动
- anaconda - Spyder 中的文件丢失