【问题标题】:Move all versions of a given file in a S3 bucket from one folder to another folder将 S3 存储桶中给定文件的所有版本从一个文件夹移动到另一个文件夹
【发布时间】:2020-12-29 07:35:09
【问题描述】:

我已设置启用版本控制的 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,以便将来我不必处理相同版本的文件两次。

【问题讨论】:

    标签: java amazon-web-services amazon-s3


    【解决方案1】:

    无法“移动”Amazon S3 中的对象。相反,它们需要复制到新密钥,然后应该删除原始对象

    对于一个对象的多个版本,此过程会更加困难。您需要从最旧到最新分别复制和删除每个版本,以在目标路径中创建新版本。不可能同时处理一个对象的所有版本。

    版本控制通常用于保留被覆盖的数据。您可能需要考虑在您的情况下是否需要版本控制,因为它会使过程相当复杂。

    【讨论】:

      猜你喜欢
      • 2016-02-10
      • 2020-06-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-23
      • 2023-01-30
      • 2020-05-19
      相关资源
      最近更新 更多