AWS S3 presigned URLs 생성 및 업로드 테스트

2024. 7. 30. 14:55AWS/Amazon S3

728x90
SMALL
  • 개요
presigend url을 통해 업로드하는 테스트 스크립트

 

 

  • 스크립트
Downloading Object using presigned URLs
aws s3 presign s3://DOC-EXAMPLE-BUCKET1/mydoc.txt --expires-in 604800

Uploading Object using presigned URLs
➜  ~ brew install python3

➜  ~ pip3 install boto3 --break-system-packes

➜  ~ vim pre.py
import boto3
BUCKET = ‘my-bucket’
KEY = 'my-uploaded-file.txt'
s3 = boto3.client('s3')
url = s3.generate_presigned_url(
    ClientMethod='put_object',
    Params={'Bucket': BUCKET, 'Key': KEY},
    ExpiresIn=3600,
    HttpMethod='PUT'
)
print(url)

➜  ~ python3 pre.py
https://my-bucket.s3.amazonaws.com/my-uploaded-file.txt?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAVPG2R6DZLYHFZVLO%2F20240730%2Fap-northeast-2%2Fs3%2Faws4_request&X-Amz-Date=20240730T052522Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=827a3457f93ce48c2d7e182b5119859a534821ad85b435abd5a45ed62f35fd42

➜  ~ curl -D - -X PUT --upload-file my-uploaded-file.txt https://my-bucket.s3.amazonaws.com/my-uploaded-file.txt\?X-Amz-Algorithm\=AWS4-HMAC-SHA256\&X-Amz-Credential\=AKIAVPG2R6DZLYHFZVLO%2F20240730%2Fap-northeast-2%2Fs3%2Faws4_request\&X-Amz-Date\=20240730T052522Z\&X-Amz-Expires\=3600\&X-Amz-SignedHeaders\=host\&X-Amz-Signature\=827a3457f93ce48c2d7e182b5119859a534821ad85b435abd5a45ed62f35fd42
HTTP/1.1 200 OK
x-amz-id-2: NTfz7s8P5JI+RgPIO38yUMJtC9kL/RXToYzZLhyhif0BMi71C5xyFzGyJp5ulWDp4MCWsqNb/lk=
x-amz-request-id: 9FKC6RBG02E06C1H
Date: Tue, 30 Jul 2024 05:26:24 GMT
x-amz-server-side-encryption: AES256
ETag: "fdadca01a93699d712420038befc95ac"
Server: AmazonS3
Content-Length: 0

➜  ~ aws s3 ls my-bucket | grep upload
2024-07-30 14:26:24         14 my-uploaded-file.txt
728x90
LIST

'AWS > Amazon S3' 카테고리의 다른 글

교차 계정에서 S3 object 복사 하기  (0) 2023.12.29
s3 filesystem mount  (0) 2023.08.14
AWS S3 bucket arn 추출하기  (0) 2023.01.31