代码之家  ›  专栏  ›  技术社区  ›  Ankit Singodia

实时将S3存储桶数据移动到另一个存储桶-AWS lambda?

  •  1
  • Ankit Singodia  · 技术社区  · 6 年前

    我们有一个父母的桶,比如说 “BUKET-1” . 然后在这个bucket-1下,我们有多个文件夹,每个客户有一个(比如 客户1、客户2、客户3 等等。 我们为每个客户将GB的数据上传到这些文件夹中。这个数据是通过多个通道,通过JS,通过Java,通过SWIFT iOS等上传的。

    要求: 现在,我们有一个特定客户的要求,要将它的数据(forthecoming)上传到另一个专用的bucket中,比如说” 桶-2 “(以便可以通过该客户的另一个AWS帐户向客户提供一些特殊权限以进行读取访问)。

    解(S) 我想到的是:**

    1. 在所有通道(JS、Java、SWIFT)中进行代码修改以适应这种变化。但是这个解决方案是a)耗时,b)将上传逻辑与特定需求紧密耦合。

    2. 使用AWS lambda在存储桶之间移动数据。此lambda将在对特定客户机的bucket文件夹执行任何操作时触发。

    现在看来,2最适合我。有什么建议吗?或者你想到的其他解决办法?

    2 回复  |  直到 6 年前
        1
  •  1
  •   John Rotenstein    6 年前

    你可以使用 Cross-Region Replication (CRR) - Amazon Simple Storage Service 自动将AmazonS3存储桶(或存储桶的一部分)复制到另一个存储桶。这是自动发生的,但是异步的。

    缺点是它要求另一个bucket位于不同的区域(这是CRR的主要用例)。

    或者,您可以不将数据复制到另一个bucket,而是 使用Bucket策略授予对其他帐户的必要访问权限 . 这比纯粹为了提供不同类型的访问而复制只读数据更有意义。在做出一个需要持续维护的复杂选项(并且存储成本更高)之前,有必要探索这个选项。

        2
  •  0
  •   Ankit Singodia    6 年前

    其他有相同要求的,也请参考以下帖子:

    AWS issue