s3 - автоматическое сжатие перед передачей - PullRequest
0 голосов
/ 03 октября 2019

Если этот вопрос является повторением или неправильным, извините, пожалуйста, удалите это.

Я хочу знать:

  1. Если какой-либо доступный инструмент по по умолчанию сжатие и передача файла в S3

  2. или инструмент имеет возможность сжать и передать файл в S3

  3. , или я должен вызвать библиотеки Python и сжатьа затем перейти к S3

1 Ответ

0 голосов
/ 03 октября 2019

Вы можете сделать с простым кодом Python, если хотите.

import gzip
import json
import boto3


# To compress
# Data to compress
data = [{'name': 'test'}, {'name': 'test2'}]
# Converting data to string
json_str = json.dumps(data) + "\n"
# Converting to bytes
json_bytes = json_str.encode('utf-8')
jsonfilename = "s3_compressed_file.json.gz"
# Compressing to gzip
with gzip.GzipFile(jsonfilename, 'w') as f:
    f.write(json_bytes)


# Upload to S3
s3BucketName = 'mybucket'
s3_resource = boto3.resource('s3')
# if you want to rename file while uploading
file_name = 's3_compressed_file-1.json.gz'
# '/current_dir_path/' + filename, '<bucket-name>', 's3_folder/{}'.format(filename)
s3_response = s3_resource.meta.client.upload_file('source_dir/' + 's3_compressed_file.gz', s3BucketName,
                                                      'destination_dir/{}'.format(file_name))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...