要解决AWS S3文件从AWS Lambda函数重定向时返回403错误响应CORS预检OPTIONS请求的问题,可以使用以下代码示例:
import json
def lambda_handler(event, context):
# 允许来自所有来源的CORS请求
headers = {
'Access-Control-Allow-Origin': '*',
'Access-Control-Allow-Headers': 'Content-Type',
'Access-Control-Allow-Methods': 'GET'
}
# 处理OPTIONS预检请求
if event['httpMethod'] == 'OPTIONS':
return {
'statusCode': 200,
'headers': headers
}
# 处理实际的GET请求
# 重定向到S3文件URL
redirect_url = 'https://s3.amazonaws.com/bucket_name/file_name'
return {
'statusCode': 302,
'headers': {
'Location': redirect_url
}
}
在存储桶的权限设置中,添加以下CORS配置:
*
GET
*
以上代码示例中,我们在Lambda函数中添加了CORS配置,允许来自所有来源的CORS请求,并处理了OPTIONS预检请求。在实际的GET请求中,我们将重定向到S3文件的URL。
同时,在S3存储桶中添加了CORS配置,允许来自任何来源的GET请求。
这样做可以解决AWS S3文件从AWS Lambda函数重定向时返回403错误响应CORS预检OPTIONS请求的问题。