首页 > 解决方案 > Ajax 请求从 S3 签名 URL 返回 404

问题描述

所以,我在 PHP 中生成了一个签名的 URL,我想将该文件提供给 d3js,但 ajax 请求总是返回 404。

示例签名 URL 格式:https ://bucket_name_here.s3.amazonaws.com/55rq526afa-efd0-43ba-234b-74ccbb1c4d26.csv?X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Algorithm=AWS4-HMAC-SHA256&X -Amz-Credential=DAFAGHDAGGAHHH/20181016/us-east-1/s3/aws4_request&X-Amz-Date=20181016T214022Z&X-Amz-SignedHeaders=host&X-Amz-Expires=900&X-Amz-Signature=signature_here

D3js

d3.csv(signed_url_above, function(error, data){
    ...
});

我可以通过浏览器下载文件,但不能通过 Ajax 请求。我已经启用了 CORS 请求

<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<CORSRule>
  <AllowedOrigin>*</AllowedOrigin>
  <AllowedMethod>GET</AllowedMethod>
  <AllowedMethod>PUT</AllowedMethod>
  <AllowedMethod>POST</AllowedMethod>
  <AllowedMethod>HEAD</AllowedMethod>
  <MaxAgeSeconds>3000</MaxAgeSeconds>
  <AllowedHeader>*</AllowedHeader>
</CORSRule>
</CORSConfiguration>

更新:请求中的实际错误

<Code>NoSuchKey</Code>
<Message>The specified key does not exist.</Message>

有谁知道为什么这不起作用?

标签: d3.jsamazon-s3

解决方案


推荐阅读