无法弄清楚怎么做?并且无法从其他任何地方找到帮助!
我已经像这样设置了回形针和雾;
配置/初始化/ 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])
答案 0 :(得分:3)
让我们退后一步,从不同角度看问题。您能看到以下脚本是否会将图像上传到您的容器中:
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
使用适当的变量更新大写参数,让我知道会发生什么。希望这有助于缩小问题范围。
答案 1 :(得分:2)
Paperclip和ActiveRecord应自动为您处理文件上传。这是一个很好的快速入门解释过程:
https://github.com/thoughtbot/paperclip#quick-start
如果您仍然遇到问题,可以向我提供相关的控制器和型号代码吗?