Ajax请求从S3签名URL返回404

时间:2018-10-16 22:06:27

标签: d3.js amazon-s3

因此,我在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

class CustomSalesTotalController < Spree::Admin::ReportsController
  def initialize
    super
    Spree::Admin::ReportsController.add_available_report!(:custom_sales_total)
  end
end

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

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

已更新:请求中的实际错误

<?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>

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

0 个答案:

没有答案