[英]Rails - how to fetch images from S3, resize them and save thumbnails to S3?
我們有很多圖像存儲在Amazon S3存儲桶中,我們需要調整它們的大小。 因此,我們需要抓取存儲桶中的所有圖像並逐個調整大小(根據其方向)。 最好的方法是什么? 只寫一個ruby腳本或者有什么方法可以做到嗎?
謝謝
在過去,我在工人類中使用了aws-sdk-ruby gem和rmagick的組合:
auto_orient
無論何時收到未來圖像,您都可以在后台排隊這樣的進程(delayed_job / sideqik / resque / etc)。
這是一個要點 。
也可以使用簡單的shell腳本(有一些外部幫助)
安裝s3cmd 。 它是與s3交互的命令行工具。 安裝ImageMagick 。 這就是rMagic在引擎蓋下使用的內容
然后在像這樣的shell腳本中使用它
#!/bin/bash
S3CMD=$(which s3cmd)
CONVERT=$(which convert)
#
# Download the file from s3
$S3CMD get s3://mybucket/path/to/image/file.gif
# convert it to thumbnail
$CONVERT file.gif -resize 64x64 resize_file.gif
# upload the thumbnail back to s3
$S3CMD put resize_file.git s3://mybucket/path/to/thumbnails/resize_file.gif
# cleanup
rm file.gif resize_file.gif
注意:上面的示例腳本沒有任何錯誤檢查。 在執行下一個命令之前,應檢查每個命令的狀態代碼。
ImageMagick非常強大。
請以各種方式查看此內容 ,您可以使用調整圖像大小。
您也可以讓縮略圖像這樣
s3cmd能夠從s3路徑下載所有文件。 ImageMagick能夠進行批處理(盡管示例腳本沒有描述它)。 如果您希望一次處理一個圖像,則應適當地修改腳本以進行循環。
另一方面,如果您已經在應用程序中使用了paperclip,它會帶來一些rake任務。 看看文檔
rake paperclip:refresh:thumbnails
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.