Как сгенерировать url для объекта s3 без истечения срока действия?

Я загрузил объект с

 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))

и я генерирую URL по

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

В некоторых случаях мне нужно генерировать URL без истечения срока действия. Возможно ли генерировать URL без истечения срока действия в s3 bucket?

Мне нужно генерировать URL без истечения срока действия в некоторых случаях

Это невозможно. Если вы не хотите регенерировать ссылки каждые 7 дней, то вам нужно обратить внимание на другие решения для обмена файлами S3. Часто используется CloudFront с S3. В противном случае вам потребуется полностью индивидуальное решение, адаптированное под ваши конкретные нужды.

Если объект является публичным, он имеет постоянный url вида:

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

Иначе у вас не может быть постоянной ссылки.

Вернуться на верх