Попробуй это...
import boto
import boto.s3
import sys
from boto.s3.key import Key
AWS_ACCESS_KEY_ID = ''
AWS_SECRET_ACCESS_KEY = ''
bucket_name = AWS_ACCESS_KEY_ID.lower() + '-dump'
conn = boto.connect_s3(AWS_ACCESS_KEY_ID,
AWS_SECRET_ACCESS_KEY)
bucket = conn.create_bucket(bucket_name,
location=boto.s3.connection.Location.DEFAULT)
testfile = "replace this with an actual filename"
print 'Uploading %s to Amazon S3 bucket %s' % \
(testfile, bucket_name)
def percent_cb(complete, total):
sys.stdout.write('.')
sys.stdout.flush()
k = Key(bucket)
k.key = 'my test file'
k.set_contents_from_filename(testfile,
cb=percent_cb, num_cb=10)
[ОБНОВЛЕНИЕ] Я не питонист, поэтому спасибо за внимание к операторам импорта. Кроме того, я бы не рекомендовал размещать учетные данные в собственном исходном коде. Если вы запускаете это внутри AWS, используйте учетные данные IAM с профилями экземпляров ( http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2_instance-profiles.html ) и сохраните такое же поведение в в вашей среде разработки / тестирования используйте что-то вроде Hologram from AdRoll ( https://github.com/AdRoll/hologram )
Не нужно усложнять:
источник
key.set_contents_from_filename('some_file.zip')
тоже будет работать здесь. См. Док . Соответствующий код для boto3 можно найти здесь .источник
aws configure
, введите свою информацию, и вы автоматически подключитесь к boto3. Проверьте boto3.readthedocs.io/en/latest/guide/quickstart.htmlaws configure
заранее настроить ключи AWS, чтобы облегчить себе жизнь.Я использовал это, и это очень просто реализовать
https://www.smore.com/labs/tinys3/
источник
boto3.client
решение (например, ответ Маниша Мехры) сработало сразу.источник
aws_access_key_id
иaws_secret_access_key
его также можно настроить с помощью интерфейса командной строки AWS и сохранить вне сценария, чтобы можно было вызывать `client = boto3.client ('s3')Загрузите файл в s3 в рамках сеанса с учетными данными.
источник
Это также будет работать:
источник
Это три лайнера. Просто следуйте инструкциям в документации по boto3 .
Вот несколько важных аргументов:
Параметры:
str
) - путь к файлу для загрузки.str
) - имя сегмента для загрузки.str
) - имя, которое вы хотите назначить своему файлу в корзине s3. Это может быть то же самое, что и имя файла, или другое имя по вашему выбору, но тип файла должен оставаться тем же.Примечание: я предполагаю, что вы сохранили свои учетные данные в
~\.aws
папке, как это предлагается в лучших практиках настройки в документации по boto3 .источник
источник
Использование boto3
Для получения дополнительной информации: - https://boto3.amazonaws.com/v1/documentation/api/latest/guide/s3-uploading-files.html.
источник
Для примера папки загрузки, как следующий код и изображение папки S3
PS: Для получения дополнительной ссылки URL
источник
источник
У меня есть кое-что, что мне кажется более упорядоченным:
Там уже три важных переменных здесь, то ВЕДРО Const, то file_to_upload и имя_файл
BUCKET
: имя вашего ведра S3file_to_upload_path
: должен быть путь к файлу, который вы хотите загрузитьfile_name
: это полученный файл и путь в вашем ведре (сюда вы добавляете папки или что-то еще)Есть много способов, но вы можете повторно использовать этот код в другом скрипте вроде этого
источник