我正面临一个无法解决的问题。我希望生成一个预先签名的URL,并在该URL的前端重定向用户,以便他可以下载文件。因此,我在lambda函数上又添加了一个触发器,那就是API网关。这是我的代码:
import os
import boto3
def lambda_handler(event, context):
url = ""
for record in event['Records']:
bucket = record['s3']['bucket']['name']
file_key = record['s3']['object']['key']
uri_duration = 90
s3Client = boto3.client('s3')
url = s3Client.generate_presigned_url('get_object', Params =
{'Bucket': bucket,
'Key': file_key},
ExpiresIn = uri_duration)
print(url)
return {"location": url }
该代码应该将预签名的url保存在“位置”中,然后将其映射到API。问题是,在调试之后,我意识到此函数每次由API网关或从s3存储桶调用时都会运行一次。因此,我想问是否有人知道是否可以生成预签名的url,并以其他方式进行301重定向?抱歉,如果我的问题很明显,我是AWS的新手