[英]Move all versions of a given file in a S3 bucket from one folder to another folder
我设置了一个启用了版本控制的 S3 存储桶。
一个外部进程正在将 json 文件(每个 json 文件对应于单个学生实体)写入 S3 存储桶。
我决定 S3 存储桶文件夹结构如下:
s3://student-data/new/ <-- THIS WILL CONTAIN ALL THE UNPROCESSED JSON FILES
s3://student-data/processed/ <-- THIS WILL CONTAIN ALL THE PROCESSED JSON FILES.
现在,我有一个定期运行的 Cron,每 6 小时运行一次。
新的 JSON 文件由外部进程写入new
文件夹。
我希望 Cron 在new
文件夹中处理所有 JSON 文件以及相关版本,处理结束后,将new
文件夹中所有现有版本的所有文件移动到已processed
文件夹。
在这里,我可以获取写入new
文件夹的 json 文件的当前版本,并将其移动到已processed
的文件夹后处理。
但是我不知道如何将所有版本的文件new
版本移动到已processed
文件,以便将来我不必处理相同版本的文件两次。
Amazon S3 中的对象不能被“移动”。 相反,它们需要被复制到一个新的密钥,然后原来的 object 应该被删除。
对于 object 的多个版本,此过程会更加困难。 您需要单独复制和删除每个版本,从最旧到最新,以在目标路径中创建新版本。 不可能同时处理 object 的所有版本。
版本控制通常用于保留被覆盖的数据。 您可能需要考虑在您的情况下是否需要版本控制,因为它会使过程相当复杂。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.