Используя библиотеку Amazon s3 boto, как я могу получить URL-адрес сохраненного ключа?

Я сохраняю ключ в ведро с помощью:

key = bucket.new_key(fileName) key.set_contents_from_string(base64.b64decode(data)) key.set_metadata('Content-Type', 'image/jpeg') key.set_acl('public-read') 

После успешного сохранения, как я могу получить доступ к URL-адресу вновь созданного файла?

3 Solutions collect form web for “Используя библиотеку Amazon s3 boto, как я могу получить URL-адрес сохраненного ключа?”

Если ключ является общедоступным (как показано выше), вы можете использовать Key.generate_url :

 url = key.generate_url(expires_in=0, query_auth=False) 

Если ключ является приватным, и вы хотите создать URL-адрес истечения срока действия, чтобы разделить контент с тем, у кого нет прямого доступа, вы можете сделать:

 url = key.generate_url(expires_in=300) 

где expires – количество секунд до истечения срока действия URL-адреса. Они будут создавать HTTPS-url. Если вы предпочитаете URL-адрес HTTP, используйте это:

 url = key.generate_url(expires_in=0, query_auth=False, force_http=True) 

Для Boto3 вам нужно сделать это следующим образом …

 import boto3 s3 = boto3.client('s3') url = '{}/{}/{}'.format(s3.meta.endpoint_url, bucket, key) 
 import boto from boto.s3.connection import S3Connection conn = S3Connection('AWS_ACCESS_KEY', 'AWS_SECRET_KEY') secure_https_url = 'https://{host}/{bucket}/{key}'.format( host=conn.server_name(), bucket='name-of-bucket', key='name_of_key') http_url = 'http://{bucket}.{host}/{key}'.format( host=conn.server_name(), bucket='name-of-bucket', key='name_of_key') 

Вот как я сделал это в boto 2.23.0 для общедоступного URL. Я не мог заставить аргумент expires_in = None работать.

Обратите внимание, что для HTTPS вы не можете использовать субдомен.

  • Сравните время запуска экземпляра EC2 и текущего времени в python
  • Загрузка измененного изображения на S3
  • Отключить ведение журнала boto без изменения файлов boto
  • Mocking boto3 S3 клиентский метод Python
  • Не удалось подключить ведро aws s3 с помощью boto
  • Boto EC2: создать экземпляр с тегами
  • Ошибка Boto s3. BucketAlreadyOwnedByYou
  • Как удалить версию s3 из ведра с помощью boto и python
  • Более быстрый способ сделать иерархию папок S3 «чем анализ имен файлов?
  • Boto - Как удалить набор записей из маршрута53 - Прошел, чтобы удалить набор записей ресурсов, но он не был найден
  • Запрос dynamoDB с полем без хэш-ключа (с boto / python)
  • Python - лучший язык программирования в мире.