Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services 实时将S3存储桶数据移动到另一个存储桶-AWS Lambda?_Amazon Web Services_Aws Lambda - Fatal编程技术网

Amazon web services 实时将S3存储桶数据移动到另一个存储桶-AWS Lambda?

Amazon web services 实时将S3存储桶数据移动到另一个存储桶-AWS Lambda?,amazon-web-services,aws-lambda,Amazon Web Services,Aws Lambda,我们有一个父bucket,比如说“bucket-1”。然后在这个Bucket-1下,我们有多个文件夹,每个客户一个(比如说cust1、cust2、cust3等等)。 我们为每个客户将Gb的数据上传到这些文件夹中。这些数据通过多种渠道上传,包括JS、JAVA、Swift IOS等 要求: 现在,我们得到了一个特定客户的要求,即将其数据上传到另一个专用bucket中,比如“bucket-2”(这样,可以向客户提供一些特殊权限,以便通过该客户的另一个AWS帐户进行读访问) 我提出的解决方案:** 在所

我们有一个父bucket,比如说“bucket-1”。然后在这个Bucket-1下,我们有多个文件夹,每个客户一个(比如说cust1、cust2、cust3等等)。 我们为每个客户将Gb的数据上传到这些文件夹中。这些数据通过多种渠道上传,包括JS、JAVA、Swift IOS等

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

我提出的解决方案:**

  • 在所有通道(JS、Java、Swift)中修改代码以适应此更改。但这种解决方案a)耗时,b)将上传逻辑与特定需求紧密耦合

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

  • 目前看来,2号似乎最适合我。有什么建议吗?或者您想到的任何其他解决方案?

    您可以使用它自动将Amazon S3 bucket(或bucket的一部分)复制到另一个bucket。这会自动但异步发生

    不利的一面是,它要求另一个bucket位于不同的区域(这是CRR的主要用例)


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

    其他有相同要求的人,也请参阅下面的帖子:


    我同意您提出的第二个解决方案是最好的。每次上传到
    Bucket-1
    时,您应该能够触发Lambda函数。如果无法在特定路径上触发,那么您至少可以将该逻辑添加到Lambda函数中,以便仅在路径前面加上特定字符串时进行复制。不过,双击该要求,为什么需要单独的bucket来获得特殊权限,ACL可以分配给每个对象,IAM策略/用户可以分配到bucket中的特定前缀(文件夹)。bucket(bucket-2)是您的帐户中的,还是您的客户中的?@Cheruvian很抱歉回复得太晚,但是是的,深入了解您的建议有助于我满足此要求。非常感谢@普雷斯顿:是的!Bucket-2在我的帐户中。很抱歉回复晚了,但是是的,深入了解您的建议有助于我满足此要求。谢谢!