Аутентифицированный вызов API для AWS с запросами - PullRequest
0 голосов
/ 22 октября 2019

Я запускаю приложение django с некоторыми данными в корзине AWS. Данные в основном файлы (PowerPoint, Word и т. Д.). Когда я создаю новый файл, я получаю прикрепленную к нему ссылку, которую я показываю в виде списка REST, например:

"store_file": "https://mybucketname.s3.amazonaws.com/media/private/myfile?AWSAccessKeyId=XXXX&Signature=XXXXXExpires=1571731023"

Я хотел бы получить этот файл, выполнив аутентифицированный запросдо конечной точки с библиотекой requests, и я не получаю ее на работу. Я получаю 200 при этом:

def get_data(method='get'):
    endpoint = "https://mybucket.s3.amazonaws.com/pathtomyfile?AWSAccessKeyId=XXX&Signature=XXXExpires=1571731023"
    r = requests.request(method, endpoint)
    return r.status_code

get_data()

Но он не загружает мой файл

Что делает это с помощью CLI AWS, как aws s3 cp s3://pathtomyfileinbucket /pathtomysavelocation/filename.pptx

Несмотря на то, что это работает, это не подходит для моего случая использования, так как я хочу использовать его на разных машинах, с тестами и т. Д. *

Я также пытался использовать aws_requests_auth, например:

auth = AWSRequestsAuth(aws_access_key='...',
                        aws_secret_access_key='...',
                        aws_host='restapiid.execute-api.eu-west-1.amazonaws.com',
                        aws_region='eu-west-1',
                        aws_service='execute-api')

response = requests.get('https://restapiid.execute-api.us-east-1.amazonaws.com/stage/mybucket.s3-eu-west-1.amazonaws.com/pathtomyfile',
                         auth=auth, headers=headers)

Есть ли способ сделать то, что я хочу сделать ?? Я благодарен за любую помощь. Большое спасибо заранее!

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