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

q8l4jmvw  于 2021-06-29  发布在  Java
关注(0)|答案(1)|浏览(717)

我已经设置了一个启用了版本控制的s3 bucket。
一个外部进程是将json文件(每个json文件对应一个学生实体)写入s3 bucket。
我决定s3 bucket文件夹结构如下:

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处理所有的json文件及其相关版本 new 文件夹,处理结束后,移动中所有现有版本的所有文件 new 文件夹到 processed 文件夹。
在这里,我可以获取当前版本的json文件 new 文件夹并将其移动到 processed 文件夹后期处理。
但是我不知道如何从中移动一个包含所有版本的文件 newprocessed 这样以后我就不必处理同一版本的文件两次了。

pxiryf3j

pxiryf3j1#

amazon s3中的对象不能“移动”。相反,需要将它们复制到一个新的键,然后删除原始对象。
对于一个对象的多个版本,这个过程将更加困难。您需要从最旧版本到最新版本分别复制和删除每个版本,以便在目标路径中创建新版本。不可能同时处理对象的所有版本。
版本控制通常用于保留被覆盖的数据。您可能需要考虑在您的情况下是否需要版本控制,因为它使过程相当复杂。

相关问题