Как сгенерировать 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}"
Иначе у вас не может быть постоянной ссылки.