繁体   English   中英

用回形针和雾上传到Rackspace云文件

[英]Uploading to Rackspace Cloud Files with paperclip and fog

无法弄清楚该怎么做? 在其他任何地方都找不到太多帮助!

我像这样设置了回形针和雾;

配置/初始化/ fog.rb

     connection = Fog::Storage.new({
       :provider           => 'Rackspace',
       :rackspace_username => '',
       :rackspace_api_key  => ''
     })

environment.rb中;

    Paperclip::Attachment.default_options.update({
    :path             => ":attachment/:id/:timestamp_:style.:extension",
    :storage          => :fog,
    :fog_credentials  => {
      :provider           => 'Rackspace',
      :rackspace_username => '',
      :rackspace_api_key  => '',
      :persistent         => false
    },
    :fog_directory    => '',
    :fog_public       => true

})

我正在使用file_field获取图像,然后将其发布到我的控制器。 这使我有了类似的东西;

"pic"=>{"image"=>#<ActionDispatch::Http::UploadedFile:0x007f90ac06a6c8 @original_filename="3245-1920x1200.jpg", @content_type="image/jpeg", @headers="Content-Disposition: form-data; name=\"cloth[pic][image]\"; filename=\"3245-1920x1200.jpg\"\r\nContent-Type: image/jpeg\r\n", @tempfile=#<File:/tmp/RackMultipart20130104-5386-103laem>>}

我不明白的是,我该如何使用这种方法将文件实际保存到云文件中?

file = directory.files.create(
  :key    => 'resume.html',
  :body   => File.open("/path/to/my/resume.html"),
  :public => true
)

编辑

相关模型;

class Cloth
  include Mongoid::Document
  has_many :pics

class Pic
  include Mongoid::Document
  include Mongoid::Paperclip
    belongs_to :cloth

    has_mongoid_attached_file :image, :styles => { :medium => "300x300>", :thumb => "100x100>" }

在控制器中,这就是我目前基于上述参数创建图片的方式;

@cloth = Cloth.new
@cloth.pics.create!(params[:cloth][:pic])

让我们退后一步,从不同的角度看问题。 您能否查看以下脚本是否将图像上传到您的容器:

require 'fog'
service = Fog::Storage.new({
  :provider                 => 'Rackspace',
  :rackspace_username        => YOUR_USERNAME,
  :rackspace_api_key    => YOUR_API_KEY
  })

container = service.directories.new(:key => YOUR_CONTAINER_NAME)
container.files.create :key => 'my-pix.jpg', :body => File.open PATH_TO_FILE

使用适当的变量更新大写参数,并让我知道会发生什么。 希望这将有助于缩小问题的范围。

回形针和ActiveRecord应该会自动为您处理文件上传。 这是一个很好的快速入门,解释了此过程:

https://github.com/thoughtbot/paperclip#quick-start

如果仍然有问题,能否向我提供相关的控制器和型号代码?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM