Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon s3 403亚马逊S3中的禁止发布_Amazon S3_Amazon_Http Status Code 403 - Fatal编程技术网

Amazon s3 403亚马逊S3中的禁止发布

Amazon s3 403亚马逊S3中的禁止发布,amazon-s3,amazon,http-status-code-403,Amazon S3,Amazon,Http Status Code 403,我正在使用AmazonS3来托管用户的图像。虽然我将它们都设置为可供公众使用(这意味着我可以通过Chrome/Firefox/IE中的URL访问图像),但我的代码中有一个403禁止的异常。它是一个缩略图处理程序(C#,ASP.NET) 例外情况来自本部分: WebRequest.Create(file).GetResponse().GetResponseStream() 我真的很奇怪,如果ACL或权限有问题,为什么我可以用浏览器查看图像?任何帮助都将不胜感激 找到了!经过长时间的研究,我发现这

我正在使用AmazonS3来托管用户的图像。虽然我将它们都设置为可供公众使用(这意味着我可以通过Chrome/Firefox/IE中的URL访问图像),但我的代码中有一个403禁止的异常。它是一个缩略图处理程序(C#,ASP.NET)

例外情况来自本部分:

WebRequest.Create(file).GetResponse().GetResponseStream()

我真的很奇怪,如果ACL或权限有问题,为什么我可以用浏览器查看图像?任何帮助都将不胜感激

找到了!经过长时间的研究,我发现这是因为URL字符串是区分大小写的。原来我在某处有一个.toLower():

string file = context.Request.QueryString[IMG_PARAM].Trim().ToLower().Replace("\\", "/");

删除.toLower()后,问题将得到解决。

我发现,如果您使用CNAME访问Cloudfront CDN资源,但不将这些CNAME添加到AWS管理控制台的分发设置中,也会出现此错误

例如:


我也有同样的问题。如果在配置Cloudfront发行版时未指定
根文件
选项,也可能发生这种情况

当我将根文件设置为index.html时,一切都很顺利

string file = context.Request.QueryString[IMG_PARAM].Trim().ToLower().Replace("\\", "/");
cdn.yourdomain.com/js/your_script.js
rather than:
abc12345.cloudfront.net/js/your_script.js