繁体   English   中英

将 S3 存储桶中给定文件的所有版本从一个文件夹移动到另一个文件夹

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM