Разархивируйте файл .zip и перенесите его в s3 bucket, используя python и boto 3 - PullRequest
1 голос
/ 14 мая 2019

Я пытаюсь распаковать .zip-файл в корзину s3, не загружая его на свой компьютер, и скопировать его в другую корзину s3.

У меня уже есть файл для копирования в другое ведро, теперь мне просто нужно распаковать его.

Я новичок в Python, так что, если вы могли бы объяснить это, это было бы здорово!

import boto3 

# set buckets
s3bucket = mybucket
otherbucket = prodbucket

# pass the access keys as variables into the boto session
session = Session(aws_access_key_id=awsAccessKeyID,
                  aws_secret_access_key=awsSecretAccessKey)

# specify s3 connection
s3 = session.resource('s3')
your_bucket = s3.Bucket(s3bucket)

# set main bucket as copy source
copy_source = {
      'Bucket': s3bucket,
      'Key': mykey
    }
# set staging bucket as bucket variable
bucket = s3.Bucket(otherbucket)



# copy files from main bucket and set the key
bucket.copy(copy_source, otherkey)

1 Ответ

1 голос
/ 14 мая 2019

Это хорошо объясняется здесь: Как извлечь файлы в S3 на лету с помощью boto3?

Сам S3 не изменяет файлы.Это дает вам возможность загружать, извлекать контент локально с помощью кода, загружать (что вы указали как нежелательное) или запускать функцию AWS Lambda, которая извлекает файл во временное пространство в облаке с кодом и затем загружает егов ваше ведро.

В любом случае вам понадобится код на Python с использованием библиотеки zipfile, это всего лишь вопрос запуска кода на вашем компьютере или запуска кода на ресурсах AWS (Lambda).

Начало работыс лямбдой: https://docs.aws.amazon.com/lambda/latest/dg/getting-started-create-function.html

Извлечение Zipfile с примерами zipfile: https://docs.python.org/3/library/zipfile.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...