gpt4 book ai didi

ruby-on-rails - Shrine.rb - 上传后如何访问文件路径/原始文件

转载 作者:行者123 更新时间:2023-12-02 00:32:23 25 4
gpt4 key购买 nike

我还有一些可以对图像执行的其他任务。比如选择多张图片,然后将它们组合成一张图片。我有使用 RMagick 和本地文件的那部分,我有使用 Shrine 的上传部分,但我需要将两者连接起来。上传图像后(理想情况下,该解决方案应适用于本地文件系统存储和 S3),我如何才能再次访问该文件,以使用 ImageMagick/RMagick 对其进行操作?我假设如果我使用的是 S3,我需要将图像从 S3 DL 传输到服务器并临时存储它们吗?还有其他方法吗?

最佳答案

您可以使用 Shrine::UploadedFile#download 将任何上传的文件下载到临时文件:

tempfile = photo.image.download
# or
tempfile = photo.image[:original].download

这将返回一个 Tempfile 实例,它是 File 的包装器,因此您可以通过 #path 访问磁盘上的位置:

system "convert #{tempfile.path} -resize 500x500 output.jpg"

对于图像处理,我推荐 ImageProcessing gem,它会自动生成一个 Tempfile 作为结果(如果之前没有,它会在垃圾收集时关闭并删除)。

关于ruby-on-rails - Shrine.rb - 上传后如何访问文件路径/原始文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51387388/

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