pyhton 3.8을 사용하여 AWS S3 객체 위치 / URL을 가져 오는 방법은 무엇입니까?

Nov 23 2020

다음 코드를 사용하여 AWS Lambda 함수 (Python3.8)를 사용하여 AWS S3에 파일을 업로드하고 있습니다.

   file_obj = open(filename, 'rb')

   s3_upload = s3.put_object( Bucket="aaa", Key="aaa.png", Body=file_obj)
   
   return {
   'statusCode': 200,
   'body': json.dumps("Executed Successfully")
   }

.NET에서 S3 객체의 위치 / URL을 얻고 싶습니다 return. 에서 Node.js우리가 사용하는 .location객체의 위치 / URL을 가져 오기위한 매개 변수를.

파이썬 3.8을 사용하여 이것을 수행하는 방법을 아십니까?

답변

2 Marcin Nov 24 2020 at 05:40

S3 객체의 URL은 알려진 형식을 가지며 가상 호스팅 스타일 액세스를 따릅니다 .

https://bucket-name.s3.Region.amazonaws.com/keyname

따라서 URL을 직접 구성 할 수 있습니다.

bucket_name = 'aaa'
aws_region = boto3.session.Session().region_name
object_key = 'aaa.png'

s3_url = f"https://{bucket_name}.s3.{aws_region}.amazonaws.com/{object_key}"

return {
   'statusCode': 200,
   'body': json.dumps({'s3_url': s3_url})
}