s3_direct_upload从Rails重定向到S3的XML响应

时间:2014-03-13 19:25:59

标签: ruby-on-rails file-upload amazon-s3

注意:我目前正在针对Google Chrome 33.0进行开发

我的上传表单如下:

= s3_uploader_form callback_url: importer_create_path, class: "s3-uploader" do
  = hidden_field_tag "Content-Type", ""
  = file_field_tag :file, multiple: true
  = submit_tag "Upload File(s)", class: "btn btn-primary"

注意:" hidden_​​field_tag"不包括在文档中,但S3给了我一个" Access Denied"如果我不包括该行,则说其中一个存储桶规则被违反。

提交表单后,文件上传,完成后,浏览器将重定向到XML文档:

<PostResponse>
  <Location>
    https://s3.amazonaws.com/bucketname/uploads%2F%7Btimestamp%7D-%7Bunique_id%7D-539661a0152fdb07dec27a5cd7d72c16%2F
  </Location>
  <Bucket>buckentname</Bucket>
  <Key>
    uploads/{timestamp}-{unique_id}-539661a0152fdb07dec27a5cd7d72c16/
  </Key>
  <ETag>"d41d8cd98f00b204e9800998ecf8427e"</ETag>
</PostResponse>

我的application.js中有//= require s3_direct_upload,而application.css.scss中有*= require s3_direct_upload_progress_bars。此外,我有要求:

$(".s3-uploader").S3Uploader()

在我的importer.js.coffee文件中。

据我所知,我已经遵循了Github上s3_direct_upload的README中概述的所有内容。为什么我被重定向到XML文件?

另外值得注意的是,当从Chrome的文件选择器中选择文件时,文件字段文本仍为&#34;未选择文件&#34;。提交表单时,(通常)上传文件。

1 个答案:

答案 0 :(得分:0)

我似乎错误地采取了这种做法。问题是我忘了包含正确的Javascript文件。为了更好的解释,我建议查看Github问题here