V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
sjmcefc2
V2EX  ›  数据库

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

  •  
  •   sjmcefc2 · Mar 31, 2019 · 3508 views
    This topic created in 2584 days ago, the information mentioned may be changed or developed.

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

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

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

    没有对象存储云之前,本地用高性能 NAS 的 NFS 服务来提供给其它机器直接的 FS 操作。
    w2exwh
        18
    w2exwh  
       Apr 7, 2019 via iPhone
    直接二进制入库的方式比较少吧 基本都是存放路径入库了
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3617 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 55ms · UTC 04:44 · PVG 12:44 · LAX 21:44 · JFK 00:44
    ♥ Do have faith in what you're doing.