2012-07-24 99 views
1

我正在使用carrierwave_direct將文件直接上傳到S3。我需要將文件信息保存到數據庫中 - 例如文件類型和大小。好奇什麼是做這件事的最好方法?如何從S3獲取文件大小和類型?

+0

此信息是顯示給用戶還是驗證? – 2012-07-25 03:57:17

+0

信息將通過他們的賬戶顯示給用戶。我需要顯示他們有多少文件以及它們有多大。 – 2012-07-26 02:08:18

回答

0

做到這一點的最佳方法是使用imagemagick identify command。在保存文件之前/之後,您需要計算它的大小。該文件必須是本地的(所以,如果它已經在S3你必須重新下載):

identify the-image.jpg 
#=> rose.jpg JPEG 640x480 DirectClass 87kb 0.050u 0:01 

它將輸出你有一個字符串進行解析。 RMagick有一個API會自動給你寬度/高度/類型,但我似乎無法找到它(這可能有所幫助:RMagick returns nil reading JPEG)。

+0

好奇 - 這適用於所有文件類型 - 例如pdf和文檔。想知道如果RMagic只是圖像。 – 2012-07-26 02:09:06