Home > Net >  How to generate url for the s3 object without expiring?
How to generate url for the s3 object without expiring?

Time:08-01

I have uploaded an object with the

 client = boto3.client('s3', aws_access_key_id=AWS_ACCESS_KEY_ID,
                                      aws_secret_access_key=AWS_SECRET_ACCESS_KEY)
 response = client.put_object(
                    Bucket=BUCKET_NAME, Body=in_mem_file.getvalue(), Key=str(img_name))

and I'm generating the URL by

url = client.generate_presigned_url('get_object',  Params={
                                                'Bucket': BUCKET_NAME, 'Key': str(img_name)}, ExpiresIn=518400)

I need to generate the URL without expiring in some cases. Is it possible to generate url without expiring in s3 bucket?

CodePudding user response:

I need to generate the URL without expiring in some cases

Its not possible. If you don't want to regenerate links every 7 days, then you have to look at other solutions for sharing S3 files. Often CloudFront with S3 is used. Otherwise, you need fully custom solution tailored to your specific need.

CodePudding user response:

If the object is public, it has a permanent url of the form:

def get_object_url(region, bucket, object_key)
    return f"https://{bucket}.s3.{region}.amazonaws.com/{object_key}"

Otherwise, you cannot have a permanent link.

  • Related