求教 postgresql 如何存储 jpg 或者其他格式的图片? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
sjmcefc2
V2EX    数据库

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

  •  
  •   sjmcefc2 2019-03-31 00:44:07 +08:00 3249 次点击
    这是一个创建于 2393 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

    没有对象存储云之前,本地用高性能 NAS 的 NFS 服务来提供给其它机器直接的 FS 操作。
    w2exwh
        18
    w2exwh  
       2019-04-07 10:16:52 +08:00 via iPhone
    直接二进制入库的方式比较少吧 基本都是存放路径入库了
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2620 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 31ms UTC 13:04 PVG 21:04 LAX 06:04 JFK 09:04
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86