如何在没有过期的情况下为s3照片创建URL?

问题描述 投票:0回答:2

我正在使用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

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

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

django amazon-web-services amazon-s3 boto3
2个回答
2
投票

来自:Generating Presigned URLs。无法指定非过期的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
)

0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.