def get_signed_url(self, key):
dir = ''
if '/' in key:
dir = key[:key.rfind('/') + 1]
ext = key[key.rfind('.'):]
s3_key = ''
while not s3_key:
temp_key = dir + random_id() + ext
if not self.exists(temp_key):
s3_key = temp_key
condtions = []
if self.max_size:
condtions.append(["content-length-range", 0, self.max_size])
params = {
'Bucket': self.bucket_name,
'Key': s3_key,
'Conditions': condtions
}
client = boto3.client(
's3',
aws_access_key_id=self.access_key,
aws_secret_access_key=self.secret_key,
region_name=self.region,
config=Config(signature_version='s3v4')
)
return client.generate_presigned_post(**params)
评论列表
文章目录