【问题标题】:Why google storage don't accept direct uploads from Rails Active Storage?为什么谷歌存储不接受从 Rails Active Storage 直接上传?
【发布时间】:2019-02-21 20:01:20
【问题描述】:

我在我的应用程序中使用谷歌云存储。直到上周一切正常,我什么都没做,现在我的文件没有被发送到存储中。

当我提交表单与文件时显示以下消息。

并且在控制台中有一个显示这个的链接

一个奇怪的事情是我通常可以从 Rails 控制台发送图像

config.logo.attach(io:File.open(Rails.root.join('public/images/default.png')), filename: 'default.png', content_type:'application/png');

如果使用本地存储也一切正常。

使用 Ruby 2.5.1、Rails 5.2.2 和 Active Storage 并直接上传。

更新 我的表格

<%= form_for @config, multipart: true do |f| %>
    <div class="row  border-bottom white-bg dashboard-header">
        <div class="col-lg-12">
            <h2>Configs</h2>
        </div>
        <div class="col-lg-12 mb-lg-5">                
            <%= image_tag f.object.logo, clas: 'img-fluid' if f.object.logo.attached? %>
            <div class="form-group">
                <%= f.label :logo %>
                <%= f.file_field :logo, direct_upload: true,  class:"form-control form-resource" %>
            </div>
            <button type="submit" class="btn btn-block btn-primary">Salvar</button>
        </div>
    </div>
<% end %>   

当我删除 direct_upload: true 时,工作正常,但我不想删除此功能

【问题讨论】:

  • 请包含您用于处理表单和上传的代码。
  • 完成,当我删除 direct_upload: true 时,它​​可以工作
  • 该代码中没有实际引用 GCS,您能分享实际使用 GCS 的模型/控制器吗?

标签: ruby-on-rails google-cloud-storage


【解决方案1】:

通过配置CORS(跨域资源共享)解决

https://cloud.google.com/storage/docs/cross-origin

【讨论】:

    猜你喜欢
    • 2020-02-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-27
    • 2021-04-18
    • 2016-12-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多