2015-11-05 7 views
16

У меня есть ведро в s3, и я пытаюсь вытащить URL-адрес изображения, находящегося там.Как сгенерировать URL-адрес от boto3 в веб-сервисах amazon

Я использую boto3 и boto3, похоже, не реализовал метод генерации url.

Они имеют метод ядра, который генерирует URL, как это,

import botocore.session 

session = botocore.session.get_session() 
client = session.create_client('s3') 

presigned_url = client.generate_presigned_url(
    'get_object', Params={'Bucket': self.bucket_name, 'Key': self.key}) 

Одно я вынужден сделать это, я должен отправить параметры вместе с каждым запросом, используя объект сеанса. И этот метод не позволяет мне установить переменные сессии (т.е. .. AWS учетных данных)

Ближайший я могу получить это

session = Session(aws_access_key_id='342342342342', aws_secret_access_key='3434234322', region_name='us-east-1') 
    s3 = session.resource('s3') 
    object = s3.Object('my-dev-bucket', 'amazonKeyString') 
    print object.get()["Body"] 

Это заставляет меня Amazon S3 объект, который является объектом называется

botocore.response.StreamingBody object at 0x7ffaff8cef50 

Могу ли я получить URL-адрес изображения таким образом.

Просьба помочь Прабхакар S

+1

Отъезда [этот выпуск нить] (https://github.com/boto/boto3/issues/110) на boto3 GitHub. – Monkpit

+0

Monkpit, у меня уже было это, единственное, что с этим методом, я не могу установить переменные сеанса в параметрах. Это создает URL-адрес, но он не будет искать переменные сеанса, которые я даю в коде. –

+1

Вы можете установить эти параметры при создании [boto3 client] (http://boto3.readthedocs.org/en/latest/reference/core/session.html#boto3.session.Session.client) –

ответ

39

Возможность получить результаты и не возникло никаких проблем в получении подписанного URL. я сессия по умолчанию, так как мои AWS кредитки хранились локально в файле «~/.aws/учетные данные» и мой регион по умолчанию устанавливается по мере необходимости ~/.aws/Конфиг

import boto3 
s3Client = boto3.client('s3') 
s3Client.generate_presigned_url('get_object', Params = {'Bucket': 'www.mybucket.com', 'Key': 'hello.txt'}, ExpiresIn = 100) 

Если вам нужно пройти Params для сессии, импорт boto3.session и создание пользовательского сеанса

import boto3.session 
session = boto3.session.Session(region_name='eu-central-1') 
s3Client = session.client('s3') 

 Смежные вопросы

  • Нет связанных вопросов^_^