使用带有sinatra的ruby将视频上传到Amazon S3

时间:2014-06-16 10:38:29

标签: ruby amazon-s3 sinatra carrierwave fog

我正在构建一个Android应用程序,其后端写在ruby / sinatra上。 Android应用程序的数据以json数据的形式出现。 正在使用的数据库是mongodb。

我能够捕获后端的数据。现在我要做的是上传一个在Android应用程序上以字节数组的形式发送的视频。 我还想将视频以字符串形式存储在本地数据库中。 我一直在使用载波,雾和载波 - 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/

如果有人能指导我如何专门与sinatra和mongodb一起解决这个问题,那么我将面临主要问题。

1 个答案:

答案 0 :(得分:0)

您可能会考虑使用适用于Android的AWS开发工具包直接上传到S3,以便在用户上传文件时您的应用服务器线程不会卡住。如果您使用像Heroku这样的服务,那么您只需支付额外费用就可以支付额外费用。

但在这种情况下;

使用carrierwave进行安装后,上传到S3应该是直接的。

你永远不应该将你的视频存储在数据库中,因为它会减慢你的速度!数据库未针对文件进行优化,操作系统是。视频是二进制数据,不能存储为文本,如果你想犯这种罪,你需要一个blob类型。

IMO,上传到S3就足够了,因为您可以使用亚马逊云端CDN服务以更优化的方式复制和分发您的内容。