【发布时间】:2021-12-08 07:42:55
【问题描述】:
我正在使用谷歌云功能中的 gsutil 和 boto3 将文件从我的 AWS S3 存储桶复制到 GCS 存储桶。请参阅下面的代码。在我的云函数中,我传递了我的 AWS ACCESS_KEY 和 SECRET_KEY。
AWS S3 存储桶中的数据使用默认的 Amazon S3 主密钥 (SSE-S3) 进行加密,GCS 存储桶中的文件也使用默认的“Google 托管密钥”选项进行加密。
所以,我不担心存储中的数据加密,因为它已经处理好了,但我不确定数据是否在传输中加密。有谁知道,在这种特殊情况下,如果数据在传输过程中已经加密? 或我是否需要在写入 S3 之前使用第三方工具(例如“密码术”)来加密文件以手动加密我的数据,然后在写入 GCS 存储桶之前使用此自定义生成的密钥解密文件?
import boto3
from boto3.session import Session
from botocore.client import Config
from botocore.handlers import set_list_objects_encoding_type_url
import os
from io import BytesIO
from google.cloud import storage
'''
copy all new files from AWS S3 to GCS
Also delete files after copying
'''
def main(request):
ACCESS_KEY = os.environ['ACCESS_KEY']
SECRET_KEY = os.environ['SECRET_KEY']
S3_BUCKET_NAME = os.environ['S3_BUCKET']
GCS_BUCKET_NAME = os.environ['GCS_BUCKET']
session = Session(aws_access_key_id=ACCESS_KEY, aws_secret_access_key=SECRET_KEY)
.....
.....
for s3_file in original_s3_file_list:
file_name = s3_file.key
s3_obj = s3.Object(S3_BUCKET_NAME,file_name)
#copy S3 file to GCS
data=s3_obj.get()['Body'].read()
gcs_blob = gcs_bucket.blob(file_name)
gcs_blob.upload_from_string(data)
【问题讨论】:
标签: amazon-s3 encryption google-cloud-platform google-cloud-storage boto3