Я пытаюсь переместить файлы из GCS в корзину s3, используя функции GC (эквивалент AWS Lambda). Чтобы добиться этого, я попробовал 3 разных метода. В методе 1 я получаю сообщение об ошибке, и, хотя я не получаю сообщение об ошибке в двух других вариантах, файлы фактически не копируются.
Может кто-нибудь помочь, пожалуйста?
Два других метода помечены #, и я попробовал каждый из них отдельно.
s3_client.upload_file не работает, потому что он ожидает путь к исходному файлу, и когда я предоставляю 'gs: // /30327570.pdf', он говорит
'Такой файл или каталог не существует'
Команда gustil выполняется правильно без ошибок, но новый файл не создается в корзине s3.
import os
from google.cloud import storage
import boto3
import subprocess
s3_client=boto3.client('s3',aws_access_key_id='XYZ',aws_secret_access_key='ABC')
client = storage.Client()
def hello_gcs(data, context):
bucket = client.get_bucket(data['bucket'])
blob = bucket.blob(data['name'])
#subprocess.call(['gsutil -m rsync -r gs://<google_bucket_name>/30327570.pdf s3://<aws_bucket_name>'], shell=True)
subprocess.call(['gsutil cp gs://<google_bucket_name>/30327570.pdf s3://<aws_bucket_name>'], shell=True)
#s3_client.upload_file('gs://<google_bucket_name>/30327570.pdf','<aws_bucket_name>','30327570.pdf')