Heroku + Paperclip + Amazon S3 - 定价?

时间:2011-03-08 01:40:11

标签: ruby-on-rails amazon-s3 heroku paperclip

由于Heroku是一个只读文件系统,我不能使用paperclip在服务器上存储少量文件。数据库映像存储是一个选项,但不是特别理想,因为这可能会使我的客户端的数据库大小从几百KB增加到超过5 MB的“免费”共享数据库限制(取决于映像的大小)。

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

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

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

我猜存储会花费一点(几乎没有),但带宽怎么样?谢谢:))

2 个答案:

答案 0 :(得分:11)

  

从S3的角度来看它是否更便宜   要上传和下载数据   导轨控制器,然后进给   使用的数据到浏览器   发送文件?或者它会更有意义   直接链接到图像或   来自浏览器的pdf就像正常一样?

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

您与Heroku的文件进行的任何互动(即元数据和不属于的内容)都是免费的,因为它是EC2-> S3。

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

答案 1 :(得分:1)

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

此外,当上传的资产显示在页面上(查找asset_host)时,图像将直接从您的s3存储桶网址加载,因此您需要向亚马逊支付对图像的获取请求,然后为数据付费转移涉及但也用于存储s3上的资产。您是否查看过s3 calculator以获取指示性费用?