【问题标题】:How to Upload Image to AWS server from rails Controller如何从 Rails 控制器上传图像到 AWS 服务器
【发布时间】:2015-01-26 01:17:45
【问题描述】:

请帮助在控制器中的 AWS 服务器上上传图像。

我想做以下事情。
1. 提交带图片的表单数据。
2. 获取控制器中的图像并上传到AWS服务器。
3. 上传图片到AWS没有模型编码。

而不是在模型中编写代码如下

has_mongoid_attached_file :avatar, { path: ':class/:id/:style/:basename.:extension', storage: :s3, bucket: bucket_name, s3_credentials: { access_key_id: 'access_key_id', secret_access_key: 'secret_access_key' }, styles: { thumb: ['90x90^', :jpg], feature: ['220x142^', :jpg], show_page: ['720x420^', :jpg], preview: ['145x90^', :jpg] } }

我想直接从控制器上传图片。

并且只将上传图片的 URL 保存在数据库中而不是下面。

"attachment_file_name": "imagename.png", "attachment_content_type": "image/png", "attachment_file_size": 1235, "attachment_updated_at": TimeStamp,

我只想存储这样的 URL
avatar = https://s3.amazonaws.com/bucket_name/imagename.png

注意:我的项目在 Rails 3.1.12Ruby 1.9.3p484 使用 mongoid

【问题讨论】:

    标签: mongodb ruby-on-rails-3.1 mongoid paperclip aws-sdk


    【解决方案1】:

    你需要在模型中传递 url 选项,像这样

     has_mongoid_attached_file :avatar, {
            :url            => ':s3_alias_url',
      }
    

    【讨论】:

      【解决方案2】:

      嗨,朋友,您的商店 S3 凭证模型这是错误的,您需要将 s3 凭证存储在单独的 yml 文件中。

      在您的 config/production.rb 中

      # config/environments/production.rb
           config.paperclip_defaults = {
             :storage => :s3,
             :s3_credentials => {
             :bucket => ENV['S3_BUCKET_NAME'],
             :access_key_id => ENV['AWS_ACCESS_KEY_ID'],
             :secret_access_key => ENV['AWS_SECRET_ACCESS_KEY']
            } 
           }
      

      编写你的回形针.rb

        config/initializers/paperclip.rb
        Paperclip::Attachment.default_options[:url] = ':s3_domain_url'
        Paperclip::Attachment.default_options[:path]= '/:class/:attachment/:id_partition/:style/:filename'
      

      在您的模型中需要验证图像类型

        has_attached_file :avatar, styles: {
           thumb: '100x100>',
           square: '200x200#',
           medium: '300x300>'
        }
      
       # Validate the attached image is image/jpg, image/png, etc
       validates_attachment_content_type :avatar, :content_type => /\Aimage\/.*\Z/
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-02-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多