Javascript S3直接上传-上传文件的几个问题

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

我正在使用Rails s3_direct_upload gem,使我的Heroku应用程序能够直接从用户浏览器上传文件,但我在让它工作时遇到了一些困难。我看到了三个问题

  • 上载时,会在S3存储桶中创建正确的文件夹,但那里不会显示任何文件
  • 上载将返回到XML PostResponse页面,而不是指定的控制器操作
  • 我已经将multiple files标志设置为false,但是我可以继续在上传表单中添加文件
  • 进入这个阶段需要一段时间,我最初在通过Amazon返回的错误时遇到了很多麻烦,但通过包含“hidden_field_标记‘Content type’,”标记修复了这个问题

    初始化器:config/s3\u direct\u upload.rb

    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]'.