Javascript S3直接上传-上传文件的几个问题
我正在使用Rails s3_direct_upload gem,使我的Heroku应用程序能够直接从用户浏览器上传文件,但我在让它工作时遇到了一些困难。我看到了三个问题Javascript S3直接上传-上传文件的几个问题,javascript,ruby-on-rails,ruby,amazon-s3,Javascript,Ruby On Rails,Ruby,Amazon S3,我正在使用Rails s3_direct_upload gem,使我的Heroku应用程序能够直接从用户浏览器上传文件,但我在让它工作时遇到了一些困难。我看到了三个问题 上载时,会在S3存储桶中创建正确的文件夹,但那里不会显示任何文件 上载将返回到XML PostResponse页面,而不是指定的控制器操作 我已经将multiple files标志设置为false,但是我可以继续在上传表单中添加文件 进入这个阶段需要一段时间,我最初在通过Amazon返回的错误时遇到了很多麻烦,但通过包含“hid
S3DirectUpload.config do |c|
c.access_key_id = <KEY>
c.secret_access_key = <SECKEY>
c.bucket = 'bucket'
c.region = 's3-ap-southeast-2'
c.url = nil
end
视图中的代码:
<div class="transaction_area">
<%= s3_uploader_form callback_url: {:controller => 'sales', :action => 'upcreate', :id => @organisation.id},
callback_param: 'model[image_url]',
key: "organisations/org_#{@organisation.id}/sales/${filename}",
key_starts_with: 'organisations/',
id: 's3-uploader' do %>
<%= hidden_field_tag 'Content-type', '' %>
<%= file_field_tag :file, multiple: false %>
<%= submit_tag 'Upload' %>
<% end %>
<script id="template-upload" type="text/x-tmpl">
<div id="file-{%=o.unique_id%}" class="upload">
{%=o.name%}
<div class="progress"><div class="bar" style="width: 0%"></div></div>
</div>
</script>
关于这个()我发现了一个问题,但还没有得到回答。所以我还是有点不知所措
有人有什么想法吗?你找到什么解决方案了吗?
<div class="transaction_area">
<%= s3_uploader_form callback_url: {:controller => 'sales', :action => 'upcreate', :id => @organisation.id},
callback_param: 'model[image_url]',
key: "organisations/org_#{@organisation.id}/sales/${filename}",
key_starts_with: 'organisations/',
id: 's3-uploader' do %>
<%= hidden_field_tag 'Content-type', '' %>
<%= file_field_tag :file, multiple: false %>
<%= submit_tag 'Upload' %>
<% end %>
<script id="template-upload" type="text/x-tmpl">
<div id="file-{%=o.unique_id%}" class="upload">
{%=o.name%}
<div class="progress"><div class="bar" style="width: 0%"></div></div>
</div>
</script>
<PostResponse>
<Location>
https://s3-ap-southeast-2.amazonaws.com/bucket/organisations%2Forg_1%2Fsales%2F
</Location>
<Bucket>bucket</Bucket>
<Key>organisations/org_1/sales/</Key>
<ETag>"d41d8cd98f00b204e9800998ecf8427e"</ETag>
</PostResponse>
<CORSConfiguration>
<CORSRule>
<AllowedOrigin>http://0.0.0.0:3000</AllowedOrigin>
<AllowedMethod>GET</AllowedMethod>
<AllowedMethod>POST</AllowedMethod>
<AllowedMethod>PUT</AllowedMethod>
<MaxAgeSeconds>3000</MaxAgeSeconds>
<AllowedHeader>*</AllowedHeader>
</CORSRule>
</CORSConfiguration>
<AllowedOrigin>*</AllowedOrigin>
ERROR bad URI `/organisation/1/sales/[object%20Object]'.