2011-03-08 61 views
21

由于Heroku是只读文件系统,因此我无法使用回形针在服务器上存储少量文件。数据库映像存储是一个选项,但并不特别理想,因为这可能会将客户的数据库大小从几百KB提高到超过5 MB“免费”共享数据库限制(取决于映像的大小)。Heroku +回形针+ Amazon S3 - 定价?

这使Amazon S3成为可能的解决方案。我知道Heroku是EC2上的(我相信?)。亚马逊的定价措辞在涉及S3-EC2文件传输时有点混乱。如果我让我的客户端设置一个S3帐户并让他们进行文件传输,那么价格会是什么样子?

从S3的角度来看,在rails控制器中上传和下载数据,然后使用send_file将数据提供给浏览器会更便宜吗?或者更直接地将链接直接链接到浏览器的图像或pdf,就像平常一样?

因为heroku是在亚马逊上托管的,我的客户是否必须支付任何费用?我正在寻找与此相关的其他问题,但没有任何关于文件传输的哪些部分将收取费用的直接答案。

我想存储会花费一点(几乎没有),但带宽呢?谢谢:)

+1

好问题,我只是想知道今天完全一样的东西。 – 2011-03-08 01:44:48

+0

http://aws.amazon.com/s3/#pricing – Jordi 2011-03-08 02:01:40

+0

Heroku还有一个图像存储附加组件,可以免费启动:https://addons.heroku.com/cloudinary – Chloe 2013-06-12 20:58:38

回答

11

它是从S3点的视图 便宜到 轨道控制器上载和下载数据,然后喂 数据使用 由send_file浏览器?或者它会更有意义 只是直接链接到图像或 pdf从浏览器像正常?

从S3的角度来看,这是免费的,因为Heroku会覆盖您的转移成本。然而,Heroku只允许脚本运行30秒,在此期间,其他客户端无法加载该站点,所以这真是一个糟糕的主意。您最好的选择是直接从S3提供文件,在这种情况下,您的客户会在S3和最终用户之间转移。

您与Heroku中的文件进行的任何交互(即元数据和不是什么)将是免费的,因为它是EC2-> S3。

对于大多数情况下,如果您不使用heroku,您的定价将与其相同。如果您的应用程序不断直接在S3上访问数据(读取元数据/加载文件),则此情况将发生变化的唯一情况是

+1

其他客户端是否仍然可以加载该网站在回形针下载/上传期间,如果该网站有超过1个动态? – sscirrus 2011-05-05 22:45:45

+0

使用[delayed-paperclip](https:// github。com/jstorimer/delayed_pa​​perclip)并启动一些工作人员 – Orlando 2012-02-07 18:46:43

1

您可以在Heroku上使用Paperclip - 只是不用本地文件系统进行存储。幸运的是,Paperclip可以使用s3进行存储。 Heroku有涵盖它的科技文章here

而且当图像将直接从您的S3桶URL被加载,所以你会付出亚马逊GET请求的图像,然后进行数据传输涉及一个已经上传的显示在页面上的资产(查找asset_host),但也用于在s3上存储资产。您是否看过s3 calculator以获取指示性费用?

相关问题