你好我一直在開發一個Web應用程序我想給用戶上傳個人資料圖片的可能性。我花了很多時間試圖獲得載波和霧與s3工作,但沒有設法實現它。你可以給我的任何幫助都非常讚賞。Rails圖像上傳到S3與carrierwave和霧
更新: 我一直試圖擺弄它,從我可以告訴該文件永遠不會上升,圖像值始終爲空的Users控制器。
我的上傳者類。
class PhotoUploader < CarrierWave::Uploader::Base
storage :fog
def store_dir
"uploads/#images/#{model.class.to_s.underscore}"
end
end
霧初始化
CarrierWave.configure do |config|
config.fog_credentials = {
:provider => 'AWS',
:aws_access_key_id => 'xxx',
:aws_secret_access_key => 'yyy',
}
config.fog_directory = 'pictures_dev'
config.fog_public = true
config.fog_attributes = {'Cache-Control'=>'max-age=315576000'}
end
用戶模型
class User
include Mongoid::Document
....
has_one :photo
....
end
照片模式
class Photo
include Mongoid::Document
attr_accessible :name, :image
field :image, :type => String
field :name, :type => String
belongs_to :user
mount_uploader :image, PhotoUploader
end
照片控制器
class PhotoController < ApplicationController
def update
@photo = Photo.find(params[:id])
if @photo.update_attributes(params[:image])
flash[:success] = "Your have updated your settings successfully."
else
flash[:error] = "Sorry! We are unable to update your settings. Please check your fields and try again."
end
redirect_to(:back)
end
上傳形式
= form_for @photo, :html => {:multipart => true} do |f|
%p
%label Photo
= image_tag(@user.image_url) if @photo.image?
= f.file_field :image
= f.submit
這是我能想到的,是相關的,如果有人需要我發佈更多的代碼,我會很高興。 我真的很難倒,任何幫助表示讚賞。
有沒有在日誌中的任何錯誤? – 2012-07-08 21:35:31
您可能已將S3存儲桶放置在錯誤的區域? – 2012-07-08 22:31:03
克里斯托弗,S3桶在正確的區域。凱爾,沒有任何錯誤。圖像根本不會被上傳。 – EnriqueC 2012-07-08 22:37:58