如何在不到期的情况下为S3照片创建URL



我正在使用Django用户模型来存储我的用户。我的用户将具有通常的:名称,用户名,密码。

这是一个示例:

class UserProfile(models.Model):
    user = models.OneToOneField(User, primary_key=True)
    photo_url = models.CharField(max_length=200, blank=True, default='') # the url to fetch photo

我将需要一个字段来生成一个URL,这是他上传到S3的照片的URL,这样我的客户可以下载并显示它。

在boto3中生成不确定URL的最佳方法是什么?

来自:生成预先签名的URL。没有办法指定非刺激性URL。为ExpiresIn参数使用较大的int值。尝试。

import boto3
import requests
# Get the service client.
s3 = boto3.client('s3')
# Generate the URL to get 'key-name' from 'bucket-name'
url = s3.generate_presigned_url(
    ClientMethod='get_object',
    Params={
        'Bucket': 'bucket-name',
        'Key': 'key-name'
    },
    ExpiresIn=9999999999
)

实际上我们无法在没有到期的情况下创建预先签名的URL,S3版本4的最大到期时间为一周,对于V2,它可能更高。

最新更新