2014-06-16 65 views
0

我正在構建一個在ruby/sinatra上寫有後端的android應用程序。來自android應用程序的數據以json數據的形式出現。 正在使用的數據庫是mongodb。使用ruby和sinatra將視頻上傳到Amazon S3

我能夠捕獲後端數據。現在我想要做的就是在字節數組的形式上從Android應用程序發送的Amazon S3上傳視頻。 我也想在本地數據庫中以字符串形式存儲視頻。 我一直在使用carrierwave,fog和carrierwave-mongoid寶石,但沒有任何運氣。

這些都是一些博客我也跟着:

https://blog.engineyard.com/2011/a-gentle-introduction-to-carrierwave/

http://www.javahabit.com/2012/06/03/saving-files-in-amazon-s3-using-carrierwave-and-fog-gem/

如果有人可能只是引導我,如何具體去了解它與西納特拉和MongoDB導致這就是我現在所面臨的主要問題。

回答

0

您可能會考慮使用適用於Android的AWS開發工具包直接上載到S3,以便您的應用服務器線程在用戶上傳文件時不會卡住。如果您使用的是Heroku這樣的服務,那麼您會因爲用戶連接不好而支付額外的$$$。

但是在這種情況下,

上傳到S3應該是直接向前,一旦你使用carrierwave安裝到位。

您不應該將您的視頻存儲在數據庫中,因爲它會降低速度!數據庫沒有針對文件進行優化,操作系統是。視頻是二進制數據,不能作爲文本存儲,如果你想犯這種罪行,你需要一個BLOB類型。

IMO,上傳到S3是足夠好的,因爲您可以使用Amazon cloudfront CDN服務以更優化的方式複製和分發您的內容。