5 amazon amazon-s3 http-status-code-403
我正在使用 Amazon S3 来托管用户的图像。尽管我将它们都设置为公开可用(这意味着我可以在 Chrome/Firefox/IE 中通过它们的 URL 访问图像),但我的代码中出现 403 Forbidden 异常。这是一个缩略图处理程序(C#、ASP.NET)
string file = context.Request.QueryString[IMG_PARAM].Trim().ToLower().Replace("\\", "/");
if (file.StartsWith("http") || file.StartsWith("https"))
{
using (System.Drawing.Image im = System.Drawing.Image.FromStream(WebRequest.Create(file).GetResponse().GetResponseStream()))
using (System.Drawing.Image tn = this.CreateThumbnail(im))
{
tn.Save(context.Response.OutputStream, this._formatType);
}
}
Run Code Online (Sandbox Code Playgroud)
异常来自这部分:
WebRequest.Create(file).GetResponse().GetResponseStream()
Run Code Online (Sandbox Code Playgroud)
我真的很奇怪,如果ACL或权限有问题,为什么我可以在浏览器中看到图像?任何帮助,将不胜感激。
小智 3
找到了!经过长时间的研究,我发现这是因为 URL 字符串区分大小写。原来我在某处有一个 .toLower() :
string file = context.Request.QueryString[IMG_PARAM].Trim().ToLower().Replace("\\", "/");
Run Code Online (Sandbox Code Playgroud)
删除 .toLower() 后问题将得到解决。
| 归档时间: |
|
| 查看次数: |
16968 次 |
| 最近记录: |