[英]Trying to sync two s3 buckets in lambda
我是 AWS 新手,我正在嘗試同步 2 個 s3 存儲桶
這是原始存儲桶https://s3-us-west-2.amazonaws.com/css490/input.txt的鏈接
原始 s3 存儲桶是公開的,但不是來自我的帳戶,第二個也是公開的,但是來自我的帳戶的 s3
我正在使用右上角的測試按鈕,它顯示成功,但 program-4(接收桶)仍然是空的。
(可能是因為我使用的是測試按鈕,但我不知道)
加上我如何在 HTML 中調用這個 function?
對評論的回應:
xy 問題?:我正在同步它們,因為我需要將數據從其他人的 s3 存儲桶復制到我的 s3 存儲桶
注意:我每次都需要覆蓋數據(即使文件存在)
另一個鏈接可能有幫助,但它也沒有答案(順便說一句,我也問了那個問題)
import json
import boto3
import os
import subprocess
def lambda_handler(event, context):
# link the 2 s3 buckets
subprocess(['aws', 's3', 'sync', 's3://css490', 's3://program-4'])
#arn:aws:s3:::program-4
return {
'statusCode': 200
}
默認情況下,AWS CLI 未安裝在 Lambda 環境中。
請參閱: 如何在 Lambda function 中使用 AWS CLI(來自 Lambda 的 aws s3 同步)::Ilya Bezdelev
此外,您應該使用subprocess.run()
來運行子進程。 我很驚訝您沒有在控制台中看到有關這些問題的錯誤。
雖然您可以將 AWS CLI package 轉換為 Lambda function,但我建議您自己簡單地執行這些功能:
ListBucket()
列出源存儲桶CopyObject()
將每個 object 復制到目標存儲桶如果您只想復制,試試這個: aws s3 cp --recursive s3://SOURCE_BUCKET_NAME s3://SOURCE_BUCKET_NAME
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.