我只需要获取刚刚通过Carrierwave上传到Rackspace服务器的我的图片网址(base64)。
这是我的控制器。
def update_with_image
user = current_user
uploader = PictureUploader.new
uploader.store!(user_update_params[:profile_image]) // base64 image like this 'data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2w...'
// How can i update user_update_params[:profile_image] with the successfully uploaded profile_image url?
if user.update_attributes(user_update_params)
# Handle a successful update.
render json: user, status: 200 ,serializer: UserSerializer
else
render json: { errors: user.errors }, status: 422
end
end
所以在uploader.store!(user_update_params[:profile_image])
之后我怎样才能获得该文件的网址?
谢谢!
答案 0 :(得分:0)
你是说这个?
uploader = AvatarUploader.new
uploader.store!(my_file) # size: 1024x768
uploader.url # => '/url/to/my_file.png' # size: 800x600
uploader.thumb.url # => '/url/to/thumb_my_file.png' # size: 200x200
在上传程序中调用url
方法可以获取URL。 github
更新:从载波GitHub引用
您可以选择在配置中包含CDN主机名。强烈建议这样做,因为没有它,每个请求都需要查找此信息。
config.asset_host = "http://c000000.cdn.rackspacecloud.com"
在您的上传器中,将存储设置为:fog
class AvatarUploader < CarrierWave::Uploader::Base
storage :fog
end
那就是它!您仍然可以使用CarrierWave::Uploader#url
方法将URL返回到Rackspace Cloud Files上的文件。