S3 Presigned URL에 헤더를 추가하는 법

GisangLee·2023년 2월 10일
0

import boto3
import urllib

def create_presigned_url(
    object_folder,
    object_name,
    aws_access_key_id=None,
    aws_secret_access_key=None,
    expiration=3600,
    token=None
):
    s3_client = boto3.client(
        "s3",
        region_name="AWS Region",
        aws_access_key_id=aws_access_key_id,
        aws_secret_access_key=aws_secret_access_key,
    )
    try:
        url = s3_client.generate_presigned_url(
            "put_object",
            Params={
                "Bucket": "Bucket Name",
                "Key": f"{object_folder}/{object_name}",
            },
            ExpiresIn=expiration,
        )
        
        # Add the token as a query parameter to the presigned URL
        url += "&" + urllib.parse.urlencode({"token": token})
        
        logger.info("Got presigned URL: %s", url)
        
    except ClientError as e:
        logging.error(e)
        return None

    return url

url = create_presigned_url(
	object_folder="folder",
	object_name="obj_name",
	aws_access_key_id=None,
	aws_secret_access_key=None,
	expiration=3600,
	token=self.request.user.pk,
)
profile
포폴 및 이력서 : https://gisanglee.github.io/web-porfolio/

0개의 댓글