Heroku + Paperclip + Amazon S3 - 价格?

21

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

这就留下了Amazon S3作为一个可能的解决方案。我知道Heroku是托管在EC2上的(我相信?)。当涉及到S3-EC2文件传输时,亚马逊的价格措辞有点令人困惑。如果我让我的客户建立一个S3账户,并让他们在那里进行文件传输,那么价格会是什么样子?

从S3的角度来看,在Rails控制器中同时上传和下载数据,然后使用send_file将数据提供给浏览器,这样是否更便宜?还是直接像平常一样从浏览器链接到图像或PDF更合理?

由于Heroku托管在亚马逊上,我的客户需要支付任何费用吗?我正在寻找与此相关的其他问题,但并没有真正明确的答案,关于哪些文件传输部分将收费。

我猜存储成本会很低(几乎没有),但带宽呢?谢谢:)


1
好问题,我今天也在思考同样的事情。 - Kaleb Brasee
http://aws.amazon.com/s3/#pricing - Jordi
Heroku还提供了一个图像存储的附加组件,起价免费:https://addons.heroku.com/cloudinary - Chloe
2个回答

11
从S3的角度来看,是免费的,因为Heroku将覆盖您的传输成本。但是:Heroku仅允许脚本运行30秒,在此期间,其他客户端无法加载站点,因此这真的是一个可怕的想法。您最好的选择是直接从S3提供文件,这样,是的,您的客户将在S3和最终用户之间传输。

您与Heroku对文件进行的任何交互(即元数据等)都将是免费的,因为它是EC2-> S3。

对于大多数情况,如果您不使用Heroku,您的定价将与使用Heroku相同。唯一改变的情况是,如果您的应用程序不断直接访问S3上的数据(以读取元数据/加载文件)。


1
如果网站有超过1个dyno,那么在进行Paperclip下载/上传期间,其他客户端是否仍然可以加载该网站? - sscirrus
使用delayed_paperclip并启动一些工作进程。 - Orlando

1

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

此外,当显示已上传的资产时(查找asset_host),图像将直接从您的s3存储桶URL加载,因此您将支付Amazon获取图像的请求,并支付与数据传输相关的费用以及在s3上存储资产所需的费用。您是否查看过s3计算器以获取指示性成本?


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接