Atu*_*tul 4 ruby-on-rails image-processing heroku amazon-s3 carrierwave
我有一个简单的应用程序上传我在博客数据库中使用carrierwave保存的图片.(有标题,正文和图像),我的证书工作正常.
我使用此网址在s3帐户中上传了一张图片:/s3.amazonaws.com/Buket_name/..path../thumb_smile.png
如何使用heroku rails控制台中的映像更新数据库.这似乎不起作用:
b = Blog.new
b.title = "a blog"
b.body = "some text"
b.image = File.new("s3.amazonaws.com/Buket_name/..path../thumb_smile.png","a")
or
b.image = File.open("s3.amazonaws.com/Buket_name/..path../thumb_smile.png","r")
Errno::ENOENT: No such file or directory -
s3.amazonaws.com/Buket_name/..path../thumb_smile.png
Run Code Online (Sandbox Code Playgroud)
使用CarrierWave的remote_{name}_url=属性可以获得最简单的解决方案.
b = Blog.new
b.title = "a blog"
b.body = "some text"
b.remote_image_url = 'http://s3.amazonaws.com/Buket_name/..path../thumb_smile.png'
b.save
Run Code Online (Sandbox Code Playgroud)
此功能特定于CarrierWave,因此如果您希望与其他库执行类似操作,请使用open-uri标准库.
require 'open-uri'
image = open('http://s3.amazonaws.com/Buket_name/..path../thumb_smile.png')
Run Code Online (Sandbox Code Playgroud)
现在,image Tempfile可以像Ruby脚本中的文件一样使用.
require 'open-uri'
image = open('http://s3.amazonaws.com/Buket_name/..path../thumb_smile.png')
b = Blog.new
b.title = "a blog"
b.body = "some text"
b.image = image
b.save
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1344 次 |
| 最近记录: |