ActiveStorage如何在上传到S3之前转换图像?

3

我配置了Active Storage将has_one_attached :image上传到Amazon S3。

product.image.attach(io: open(img_url), filename: "file.jpg")

我想优化图片:压缩它们或转换为.webp格式。

我有mini-magick gem,可以用来修改图片。

那么,在上传到亚马逊之前,我能否动态地从URL修改图片呢?

还是只能保存URL上的图片,处理后再进行attach操作呢?(当我有数百万张图片时,这种方式非常慢)


我从未尝试过,但也许你可以考虑使用lambda函数来完成这项工作? - iGian
1个回答

0
根据ActiveStorage的说明,它支持转换,因此您可以尝试在保存图像之前使用https://github.com/janko/image_processing与mini magick或libvips转换方法来转换图像。至少这是我目前正在尝试做的事情。 如果我成功了,我会在这里发布。 祝好运。

你成功做到了吗? - supersaidso
@supersaidso 哎呀,那真是太久以前的事了,我已经没有办法访问那段代码了,因为我换了公司。但是据我记得,我们最终还是将整个图像上传到了S3。然后从前端,我们使用了一个库来将图像加载为webp格式。我想,如果没有其他办法的话,你可以先上传所有的图像,然后在你睡觉的时候运行一个定时任务或者批处理来进行转换。我已经差不多一年没用Rails了,抱歉。 - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接