ruby-on-rails 在Rails中从Amazon S3播种多个图像附件

svujldwt  于 2022-11-26  发布在  Ruby
关注(0)|答案(2)|浏览(128)

我正在尝试将多个图像附件添加到一个模型中。我一直在使用this link,但我仍然有点卡住了,因为我的目标有所不同,因为:
1.我尝试将多个图像附加到模型中的每个对象(我植入的对象)
1.我想从我的S3桶中检索这些图像并将它们附加到对象上(这可能吗?)
这是我的种子

shirt = Item.create(name:"Basic Shirt",price:19.99)
skirt = Item.create(name:"Basic Skirt",price:29.99)
sweater = Item.create(name:"Basic Sweater",price:39.99)
kid_hood = Item.create(name:"Basic Kid Hoodie",price:19.99)

# somehow attach images here?

我正在使用aws-sdk-s3 gem来连接Active Storage到我的S3 bucket。请告诉我是否需要查看任何额外的文件。我很乐意编辑这篇文章来包含它。

ccrfmcuu

ccrfmcuu1#

ActiveStorage处理纯字节流,因此您可以下载文件(例如使用open-uri)并将流指定为附件的内容。
假设您具有以下内容(如有不同,请进行调整)

class Item < ApplicationRecord
  has_one_attached :photo
end

你可以有你的种子:

require 'open-uri'

shirt = Item.create(name:"Basic Shirt",price:19.99)
shirt.photo.attach(io: open('your-s3-nonexpiring-url'), filename: 'foo.bar')

# ...
wf82jlnq

wf82jlnq2#

只需注意:从Ruby3.0开始,您将需要调用URI.open而不是open

相关问题