Я запускаю приложение 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)
Есть ли способ сделать то, что я хочу сделать ?? Я благодарен за любую помощь. Большое спасибо заранее!