복붙노트

[PYTHON] 어떻게 아마존 웹 서비스에서 boto3에서 URL을 생성하는

PYTHON

어떻게 아마존 웹 서비스에서 boto3에서 URL을 생성하는

나는 s3에 양동이가 있고 거기에있는 이미지의 URL을 가져 오려고합니다.

내가 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. ==============================

    1.결과를 얻을 수 있고 서명 된 URL을받는 데 문제가 없었습니다. 내 aws creds가 "~ / .aws / credentials"파일에 로컬로 저장되었고 기본 영역이 ~ / .aws / config로 설정되었으므로 기본 세션을 사용했습니다.

    결과를 얻을 수 있고 서명 된 URL을받는 데 문제가 없었습니다. 내 aws creds가 "~ / .aws / credentials"파일에 로컬로 저장되었고 기본 영역이 ~ / .aws / config로 설정되었으므로 기본 세션을 사용했습니다.

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

    Session 매개 변수를 전달해야하는 경우 boto3.session을 가져 와서 사용자 정의 세션을 작성하십시오.

    import boto3.session
    session = boto3.session.Session(region_name='eu-central-1')
    s3Client = session.client('s3')
    
  2. from https://stackoverflow.com/questions/33549254/how-to-generate-url-from-boto3-in-amazon-web-services by cc-by-sa and MIT license