![](/img/trans.png)
[英]Upload and download file wrt specific version from AWS S3 bucket using Python3
[英]AWS S3 Download and Upload using TemporaryFile
我需要下載 Amazon S3 Bucket 的所有內容(包括版本)並上傳到其他 Amazon S3 Bucket。 別告訴我用aws,我就是不會用。
我為此使用了 tempfile.TemporaryFile,它顯然有效,打印顯示文件對象內部具有正確的內容,但上傳的文件為空(零字節)。
with tempfile.TemporaryFile() as data:
sourceUser.download_fileobj('source-bucket',key,data)
# next 2 lines was just to check the content of the file
data.seek(0)
print (data.read())
destinationUser.upload_fileobj(data,'destination-bucket',key)
我有同樣的要求,如何將 NamedTemporaryFile 傳遞給上傳 s3
不確定如何將 NamedTemporaryFileName 傳遞給 output=f'{file_name}.gpg' 和 load_file 函數 --> filename=f_source.name
with tempFile.NamedTemporaryFile("wb") as f_source:
s3_client.download_fileobj(s3_bucket, s3_key, f_source)
logger.info(f'{s3_key} file downloaded successfully to local {f_source}')
f_source.flush()
file_name = self.s3_key.split('/')[-1]
gpg = gnupg.GPG()
key_data = open(key_path).read()
import_result = gpg.import_keys(key_data)
f_source.seek(0)
with open(f_source.name, 'r+b') as f:
status = gpg.encrypt_file(
file=f,
recipients=[recipient],
output=f'{file_name}.gpg',
)
s3_hook.load_file(
filename=f_source.name,
key=s3_key,
bucket_name=s3_bucket,
replace=True
)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.