我正在使用s3_direct_upload将图像从我的 rails 应用程序直接上传到 S3 存储桶。这一切都很好,但是现在我想在上传后调整图像的大小,创建缩略图和其他各种版本。
我能想到的方法是使用从 s3_direct_upload 发回的 URL,然后在后台在我的应用程序中创建一个新对象,使用 RMagick 进行处理,然后将这些版本重新上传到 S3。但是,这种方法感觉就像初始上传变得有点多余。
任何有关此或更好方法的建议将不胜感激。
我正在使用s3_direct_upload将图像从我的 rails 应用程序直接上传到 S3 存储桶。这一切都很好,但是现在我想在上传后调整图像的大小,创建缩略图和其他各种版本。
我能想到的方法是使用从 s3_direct_upload 发回的 URL,然后在后台在我的应用程序中创建一个新对象,使用 RMagick 进行处理,然后将这些版本重新上传到 S3。但是,这种方法感觉就像初始上传变得有点多余。
任何有关此或更好方法的建议将不胜感激。
更新的答案
您在对我原始答案的评论中提到您尝试过 CarrierWave。但是...您尝试过CarrierWaveDirect吗?我自己没有使用过它,但它似乎使用熟悉的 CarrierWave API 执行相同的 S3 直接上传。
不推荐使用的原始答案
您可能需要查看Paperclip或Dragonfly。它们每个都支持将图像上传到 S3(或其他云存储提供商),并且还提供用于操作图像的功能。这两种解决方案以不同的方式处理操作——Paperclip 在上传时执行缩略图,而 Dragonfly 则在运行时执行缩略图——但两者都应该满足您的需求。