求教 postgresql 如何存储 jpg 或者其他格式的图片?

2019-03-31 00:44:07 +08:00
 sjmcefc2

图片如何存储呢?如何显示呢

2892 次点击
所在节点    数据库
18 条回复
forestLittleBear
2019-03-31 00:46:55 +08:00
数据库里面存图片路径。
neoblackcap
2019-03-31 01:14:17 +08:00
二进制文件放文件系统或者对象存储啊,数据库存对应的地址
deepdark
2019-03-31 01:22:33 +08:00
要么图片上传到图床,数据库保存地址。要么图片上传到服务端,生成静态资源地址,数据库保存。或者图片直接 base64 入库
sjmcefc2
2019-03-31 01:32:27 +08:00
如果考虑到系统备份,那种最好呢? 1.图片路径方式,如果这样是不是我要保证两个都要正确,文件系统上的文件,数据库的路径? 2.base64 入库,是不是增大了无畏的数据库空间?
msg7086
2019-03-31 01:54:04 +08:00
直接二进制扔进去就好了,然后如果需要的话可以存个原始文件名之类的。
lynskylate
2019-03-31 02:03:18 +08:00
文件系统仅在单机时可以使用,一旦需要多台机子就不行了。一般小文件推荐使用对象存储,如果用的云还能选择不同的版本提高下行速度。随便一个云,对象存储都很便宜,很多云还免费提供 10g 空间。
zbinlin
2019-03-31 06:29:55 +08:00
@sjmcefc2
1. 再加个字段保存路径的
2. 直接存 bytea 类型就可以了,不需要 base64
sjmcefc2
2019-03-31 07:28:06 +08:00
@zbinlin
@lynskylate
21k 的这种证件照是不是直接存储在数据库更好呢?读取的时候会不会麻烦些?
forestLittleBear
2019-03-31 09:14:45 +08:00
@sjmcefc2 如果文件大小非常小并且数据量非常少的话可以考虑这种方式。
直接把二进制流存进去即可,读取正常操作就可以。

不过仍然不推荐直接入库。
gamexg
2019-03-31 09:15:11 +08:00
数据库是扩容最麻烦的,还是尽量减轻数据库压力为好。
beginor
2019-03-31 09:29:02 +08:00
文件小的话可以直接二进制存数据库,文件大的话建议放硬盘
jugelizi
2019-03-31 09:31:10 +08:00
哈哈 asp 时代的木马都是这样的 图片内容存数据库
qianji201712
2019-03-31 09:43:15 +08:00
太可怕了,居然想着数据库存图片。。。。
当然是放链接啊
loading
2019-03-31 09:59:56 +08:00
如果高并发,用静态文件吧。
yaxianzhi
2019-03-31 10:03:45 +08:00
阿里云 oss,七牛云这些更方便,也不贵
hyperbin
2019-03-31 10:36:27 +08:00
@deepdark 有 Bytea,large object 干嘛用 base64?
likuku
2019-04-03 03:03:31 +08:00
多机存储也可以自己架 hadoop 机群,用它的 hdfs,只是这玩意想在线访问( web 服务) 得自己代码里通过它 API 来操作,并不是个裸 FS,虽然它自己也有提供一些工具可以像 rsync/scp 一样来读写 hdfs。

没有对象存储云之前,本地用高性能 NAS 的 NFS 服务来提供给其它机器直接的 FS 操作。
w2exwh
2019-04-07 10:16:52 +08:00
直接二进制入库的方式比较少吧 基本都是存放路径入库了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/550400

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX