CORS,S3和CloudFront配置

甲基纤维素

每当我尝试将文件发布到S3存储桶时,都会收到以下错误消息:

POST https://api.*.com/sermon 413
Access to XMLHttpRequest at 'https://api*.com/sermon' from origin 'https://*.com' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.

我的S3 ELB存储桶配置如下(用于https://api.*.com/sermon):

在此处输入图片说明

我的Cloudfront设置如下(针对https://api.*.com/sermon):

在此处输入图片说明 在此处输入图片说明 在此处输入图片说明

我还设置了CloudFront Origin Response触发器作为Lambda函数:

'use strict';

// If the response lacks a Vary: header, fix it in a CloudFront Origin Response trigger.

exports.handler = (event, context, callback) => {
    const response = event.Records[0].cf.response;
    const headers = response.headers;

    if (!headers['vary'])
    {
        headers['vary'] = [
            { key: 'Vary', value: 'Access-Control-Request-Headers' },
            { key: 'Vary', value: 'Access-Control-Request-Method' },
            { key: 'Vary', value: 'Origin' },
        ];
    }
    callback(null, response);
};

HTTP状态:

在此处输入图片说明

我有什么想念的吗?

躲猫猫

CORS设置位于S3上,但看起来您在达到S3之前在CloudFront上遇到了HTTP 413(“有效载荷过大”)。因此,此问题本身与CORS并没有真正的关系。

HTTP 413通常意味着超过CloudFront请求大小20 kb,或URL长度8 kb。请注意,“请求大小”已定义为包括请求标头和查询字符串,但不包括请求正文。

因此,第一件事就是确认未超出请求大小和URL长度限制。并且所有有效负载都在POST正文中,而不是请求标头的一部分。

另请查看上传较小的文件(<100 mb)是否可行,以排除分段上传问题。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

用S3和Cloudfront配置载波的导轨

Amazon S3 + CloudFront CORS问题

AWS S3、CloudFront 和 SSL

AWS S3 + CloudFront:字体未加载(CORS 问题)

XMLHttpRequest和S3,CORS错误

为Amazon S3编写IAM策略和CORS配置

Cloudfront与S3签名的URL和Boto3

MongoDB Atlas-在AWS S3和Cloudfront上托管时配置IP白名单

使用AWS CDK使用S3起源和自定义起源(ELB)配置CloudFront分配

Amazon S3重定向和Cloudfront

在Cloudfront和S3上使用Rails AWS资产

HTTPS,AWS ELB,CloudFront和S3

使用Cloudfront和S3的RTSP流服务

指向 S3 存储桶和 ELB 的 Cloudfront 分发

为 AWS S3 设置 CORS 配置

s3中的CORS配置:未知字段AllowedHeaders

不接受 S3 存儲桶 CORS 配置

无法使用CORS配置访问S3资源

Amazon s3或Cloudfront

单独使用AWS S3或S3和Cloudfront进行视频下载

如何在AWS服务中获取源代码控制配置,例如“ s3”,“ cloudfront”配置?

从浏览器缓存提供图像时,AWS S3 + CloudFront出现CORS错误

AWS Cloudfront 以 AWS S3 作为源给出 CORS 错误

CORS 问题:AWS S3 和 Cloudfront 上的 Angular 5 以及 IIS10 EC 2 windows server 2019 上的 .net core webapi

AWS Cloudfront - S3 与 CloudFront Origin Access 和 Referer 存储桶策略

被CORS数据和S3污染的画布

CORS AWS S3 和云前端

使用AWS S3和CloudFront托管React应用程序。有人可以建议配置以访问动态URL吗?

使用 Cloudfront & S3 配置 Cloudformation 以请求 GET /subdirectory 服务 /subdirectory/index.html