gpt4 book ai didi

ruby-on-rails - Carrierwave 在生产端通过 "heroku rails console"从 s3 添加图片

转载 作者:行者123 更新时间:2023-12-04 02:11:06 25 4
gpt4 key购买 nike

我有一个简单的应用程序,可以上传我在博客数据库中使用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

最佳答案

使用 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

此功能特定于 CarrierWave,因此如果您希望对其他库执行类似操作,请使用 open-uri 来自标准库。
require 'open-uri'
image = open('http://s3.amazonaws.com/Buket_name/..path../thumb_smile.png')

现在图像是 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

关于ruby-on-rails - Carrierwave 在生产端通过 "heroku rails console"从 s3 添加图片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18708196/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com