Boto – Загрузка файла в определенное место на Amazon S3

Это код, с которого я работаю

import sys import boto import boto.s3 # AWS ACCESS DETAILS AWS_ACCESS_KEY_ID = '' AWS_SECRET_ACCESS_KEY = '' bucket_name = AWS_ACCESS_KEY_ID.lower() + '-mah-bucket' conn = boto.connect_s3(AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY) bucket = conn.create_bucket(bucket_name, location=boto.s3.connection.Location.DEFAULT) uploadfile = sys.argv[1] print 'Uploading %s to Amazon S3 bucket %s' % \ (uploadfile, bucket_name) def percent_cb(complete, total): sys.stdout.write('.') sys.stdout.flush() from boto.s3.key import Key k = Key(bucket) k.key = 'my test file' k.set_contents_from_filename(testfile, cb=percent_cb, num_cb=10) 

На моем S3 я создал «каталоги», как это «bucket / images / holiday». Я знаю, что это только виртуальные каталоги.

Мой вопрос в том, как я могу изменить эту загрузку специально для виртуального каталога bucket / images / holiday на S3, а не из корня ведра?

  • число строк dynamodb через python, запрос boto
  • Команда Boto Execute shell для экземпляра ec2
  • Как загрузить файл в каталог в ведро S3 с помощью boto
  • Почему S3 (использование с boto и django-storage) дает подписанный url даже для общедоступных файлов?
  • Django colcstatic boto broken pipe при большой загрузке файла
  • Как запустить и настроить кластер EMR с помощью boto
  • Загрузка файлов из s3 рекурсивно с помощью boto python.
  • Получение boto.exception.S3ResponseError: S3ResponseError: 403 Запрещено при загрузке файла
  • 2 Solutions collect form web for “Boto – Загрузка файла в определенное место на Amazon S3”

    Все, что вам нужно сделать, это довести путь к виртуальному каталогу до имени ключа перед загрузкой. Например:

     key_name = 'my test file' path = 'images/holiday' full_key_name = os.path.join(path, key_name) k = bucket.new_key(full_key_name) k.set_contents_from_filename(...) 

    Возможно, вам придется немного изменить это приложение, но, надеюсь, это даст вам основную идею.

    Вы также можете использовать это:

     from boto.s3.key import Key bucket = conn.get_bucket('images') k = Key(bucket) k.key = 'holiday/my_test_file.txt' 

    Это работает в моем s3_percent_uploader

     python.exe s3_percent_uploader.py test_upload.txt testbucket test/upload.txt 

    после загрузки файла будет в testbucket / test / upload.txt

    Python - лучший язык программирования в мире.