如何在heroku postgres DB中存储图像

时间:2015-07-01 01:27:29

标签: ruby-on-rails postgresql cocoa-touch heroku

我发现了一些类似的问题,并且在这个主题上有很好的联系。比如这个(Easiest way to store images in database on Heroku?),其中最重要的答案是使用他们的数据库重新思考,而不是使用S3。

我需要的是存储120张100KB图像。而已。没有动态方面。这不像我有10,000个用户,每个用户都需要存储他们的个人资料图片。都不是。我只需要存储120张100KB的图像。图像数量永远不会改变,也不会增长或缩小。从现在起3年后,将会有120张相同的图像。

由于这些原因,我想将它们存储在我的数据库中。 S3是过度的,可能需要花费一些时间和成本来实现该解决方案等。在我的数据库中,它只有12MB​​,只是DB总大小的一小部分。

如何存储图像?我应该使用什么数据类型以及如何将它们上传到我的数据库中?

1 个答案:

答案 0 :(得分:1)

只需将它们存储为表格中的bytea字段即可。使用您喜欢的语言及其数据库适配器的脚本插入它们。例如使用Python psycopg2使用open('filename','rb')文件,然后在执行execute时将其作为查询参数传递给INSERT方法。

对于那些使用pg_largeobjectlo包装器没有意义的图像,这对于真正的大文件非常有用。唯一真正的优点是您可以使用lo_import将文件直接读入数据库。