如何使用Rails和Paperclip在Google云端存储上存储照片?

use*_*621 12 ruby ruby-on-rails paperclip google-cloud-storage

到目前为止,我一直在使用Amazon S3存储用户的文件.

这里需要做的就是:

  1. 指定存储桶的Amazon S3凭据
  2. 'aws-sdk'gem 添加到Gemfile中
  3. 在模型中:

  has_attached_file :avatar, 
                    :styles => { :big => "100x100#", :thumb => "25x25#" },
                    :storage => :s3,
                    :s3_credentials => "#{Rails.root}/config/s3.yml",
                    :path => ":rails_root/public/users/:id/:style/:basename.:extension",
                    :url => "/users/:id/:style/:basename.:extension"
Run Code Online (Sandbox Code Playgroud)

设置Amazon S3适配器.这就是全部了.

但是如何设置Google云引擎呢?到目前为止,我发现只有雾宝石,我可以使用.

但是,我应该如何配置模型以自动将所有上传的文件存储在Google服务器上?

use*_*621 29

好的,所以我这样做了:

的Gemfile:

gem 'fog'
Run Code Online (Sandbox Code Playgroud)

配置/ gce.yml:

development:
  provider: Google
  google_storage_access_key_id: XXX
  google_storage_secret_access_key: XXX
Run Code Online (Sandbox Code Playgroud)

模型:

  has_attached_file :avatar, 
                    :styles => { :big => "100x100#", :thumb => "25x25#" },
                    :storage => :fog,
                    :fog_credentials => "#{Rails.root}/config/gce.yml",
                    :fog_directory => "your bucket name",
                    :path => ":rails_root/public/users/:id/:style/:basename.:extension",
                    :url => "/users/:id/:style/:basename.:extension"
Run Code Online (Sandbox Code Playgroud)

  • 对于任何想知道如何获得密钥的人:http://fog.io/storage/#google-cloud-storage (2认同)
  • @ user984621,我尝试了你的解决方案,它在开发环境中本地工作,但是,如果你没有正确设置root设置,它可能会在你将它部署到Heroku时失败.对于未来的"stackoverflow"用户,如果以上解决方案不起作用,请尝试http://stackoverflow.com/questions/33111528/heroku-argumenterror-is-not-a-recognized-provider/33114674#33114674 (2认同)