我正在使用谷歌云函式中的 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)
uj5u.com熱心網友回復:
您的資料以加密方式傳輸,因為傳輸使用 HTTPS(AWS <-> 客戶端 <-> GCP)。
boto3 客戶端的默認傳輸是 https。這可以使用use_ssl引數鏈接進行配置。默認值為True。
Google Cloud Storage 的默認傳輸也是 https。要將其更改為使用 http 需要修改API_BASE_URL 鏈接。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/333201.html
