我不得不压缩并上传一个文件,该文件保存在Amazon S3 上,而没有保存到本地计算机上。 如果可以保存到本地计算机,则可以使用以下bash命令。
aws s3 cp s3://myBucket/doc/to/sensitive_file .
gzip sensitive_file
aws s3 cp sensitive_file.gz s3://myBucket/doc/to/sensitive_file.gz
但是,我无法保存。有人知道好主意吗?我可以使用bash和python。
我做什么
我读了Amazon S3 Compressing Files?,但我解决不了。
环境
答案 0 :(得分:0)
通过使用python3,我可以按照以下3个步骤压缩并上传到Amazon S3。
这是代码。
import boto3
from io import BytesIO
from gzip import GzipFile
def compress_on_s3(bucket, from_key, to_key):
s3 = boto3.resource('s3')
with BytesIO() as input_buf:
s3.Object(bucket, from_key).download_fileobj(input_buf)
input_buf.seek(0)
data = input_buf.getvalue()
with BytesIO() as buf:
with GzipFile(fileobj=buf, mode='w') as gz_file:
gz_file.write(data)
s3.Object(bucket, to_key).put(Body=buf.getvalue())
compress_on_s3("myBucket", "doc/to/sensitive_file", "doc/to/sensitive_file.gz")