Извлечение Zip-файлов в корзину s3

#amazon-web-services #amazon-s3 #amazon-ec2 #boto3

#amazon-веб-сервисы #amazon-s3 #amazon-ec2 #boto3

Вопрос:

Я пытаюсь извлечь zip-файлы из корзины s3 и записать файлы обратно в другую корзину s3.В настоящее время у меня есть zip-файл размером 150 ГБ в корзине s3.

Когда я выполняю приведенный ниже код, он продолжает работать в течение нескольких часов, и выходных данных нет.Есть ли какой-либо альтернативный способ повысить производительность? Я ценю ваш ответ.

 s3_resource = boto3.resource('s3')
zip_obj = s3_resource.Object(bucket_name="bucket_name_here", key=zip_key)
buffer = BytesIO(zip_obj.get()["Body"].read())
z = zipfile.ZipFile(buffer)
for filename in z.namelist():
    file_info = z.getinfo(filename)
    s3_resource.meta.client.upload_fileobj(
      z.open(filename),
       Bucket=bucket,
      Key=f'{filename}'
     )
  

Комментарии:

1. Где вы запускаете этот код? На EC2 или локально? Какой тип экземпляра? (Каков размер распакованного файла?) Используете ли вы частную ссылку S3?

2. Для этого вам потребуется сначала загрузить весь объект объемом 150 ГБ, прежде чем вы сможете его распаковать. Это может занять некоторое время.

3. Как уже упоминалось, для этого потребуется загрузить все 150 ГБ. Вы загружаете его в память, и делаете это одним потоком, поэтому это займет время. И даже когда это будет сделано, вы не выводите никакого статуса, поэтому для завершения загрузки также потребуется время.

4. Я запускаю код на EC2