我已经设置了一个启用了版本控制的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
文件夹后期处理。
但是我不知道如何从中移动一个包含所有版本的文件 new
至 processed
这样以后我就不必处理同一版本的文件两次了。
1条答案
按热度按时间pxiryf3j1#
amazon s3中的对象不能“移动”。相反,需要将它们复制到一个新的键,然后删除原始对象。
对于一个对象的多个版本,这个过程将更加困难。您需要从最旧版本到最新版本分别复制和删除每个版本,以便在目标路径中创建新版本。不可能同时处理对象的所有版本。
版本控制通常用于保留被覆盖的数据。您可能需要考虑在您的情况下是否需要版本控制,因为它使过程相当复杂。