我发现了一些类似的问题,并且在这个主题上有很好的联系。比如这个(Easiest way to store images in database on Heroku?),其中最重要的答案是使用他们的数据库重新思考,而不是使用S3。
我需要的是存储120张100KB图像。而已。没有动态方面。这不像我有10,000个用户,每个用户都需要存储他们的个人资料图片。都不是。我只需要存储120张100KB的图像。图像数量永远不会改变,也不会增长或缩小。从现在起3年后,将会有120张相同的图像。
由于这些原因,我想将它们存储在我的数据库中。 S3是过度的,可能需要花费一些时间和成本来实现该解决方案等。在我的数据库中,它只有12MB,只是DB总大小的一小部分。
如何存储图像?我应该使用什么数据类型以及如何将它们上传到我的数据库中?
答案 0 :(得分:1)
只需将它们存储为表格中的bytea
字段即可。使用您喜欢的语言及其数据库适配器的脚本插入它们。例如使用Python psycopg2
使用open('filename','rb')
文件,然后在执行execute
时将其作为查询参数传递给INSERT
方法。
对于那些使用pg_largeobject
和lo
包装器没有意义的图像,这对于真正的大文件非常有用。唯一真正的优点是您可以使用lo_import
将文件直接读入数据库。