Amazon web services 通过s3预签名的url下载axios的json文件
情况很简单。lambda aws发送的json超过10MB有效负载限制。 使用预先签名的url返回这个巨大的json并获得axios的响应,这是一种好的做法吗 不幸的是,我收到了这个错误。我收到的链接是有效的,我可以在浏览器上显示jsonAmazon web services 通过s3预签名的url下载axios的json文件,amazon-web-services,amazon-s3,axios,Amazon Web Services,Amazon S3,Axios,情况很简单。lambda aws发送的json超过10MB有效负载限制。 使用预先签名的url返回这个巨大的json并获得axios的响应,这是一种好的做法吗 不幸的是,我收到了这个错误。我收到的链接是有效的,我可以在浏览器上显示json Access to XMLHttpRequest at 'https://my-perfect-bucket.s3.amazonaws.com/my-super-key?AWSAccessKeyId=XXX&Signature=XXX&x-am
Access to XMLHttpRequest at 'https://my-perfect-bucket.s3.amazonaws.com/my-super-key?AWSAccessKeyId=XXX&Signature=XXX&x-amz-security-token=XXX&Expires=XXX'
from origin 'http://localhost:3000' has been blocked by CORS policy:
No 'Access-Control-Allow-Origin' header is present on the requested resource.
我应该在axios方法中添加一个参数吗
我的lambda
import json, boto3
def lambda_handler(event, context):
body = json.loads(event['body'])
key = body["key"]
s3 = boto3.client('s3')
response = s3.generate_presigned_url('get_object',
Params={'Bucket': "my-perfect-bucket",
'Key': key}, # json file
ExpiresIn=300,
HttpMethod='GET')
return {
'statusCode': 200,
'body': json.dumps(response, default=str)
}
我的axios方法:
this.$axios
.post(`/my-cool-api/get`, {
key: this.key
})
.then(r => {
this.$axios
.get(r.data)
.then(json => {
this.mySuperData = json.data
})
})
将此添加到您的s3存储桶->权限->cors您是否在该s3存储桶上设置了cors策略?
[
{
"AllowedHeaders": [
"*"
],
"AllowedMethods": [
"GET",
"HEAD"
],
"AllowedOrigins": [
"*"
],
"ExposeHeaders": [],
"MaxAgeSeconds": 3000
}
]