关于新浪微博开始限制外链,以及聚合图床的本地化部署 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
zkdfbb
V2EX    分享创造

关于新浪微博开始限制外链,以及聚合图床的本地化部署

  •  4
     
  •   zkdfbb 2019-04-11 23:05:49 +08:00 8103 次点击
    这是一个创建于 2375 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近这几天看到 V 站上有不少讨论说新浪微博开始限制外链了,感觉到处蹭免费图床的日子终究不太安心,250 天前做了一个聚合图床专门用来未雨绸缪解决这种问题的,当时还在 V 站上发了帖子

    t/477060#reply85

    当时想解决的一个是一次上传,多次分发,然后提供一个跳转的链接来重定向,比如像下面这张图片:

    https://www.superbed.cn/info/5caea03b3a213b041703f55a

    对应一个跳转的链接:

    https://pic.superbed.cn/item/5caea03b3a213b041703f55a

    使用图片的时候直接用跳转链接就可以了,后台会检测上传到的三个图床如 微博,阿里,搜狐的链接的有效性,比如这个时候微博开始限制链接了,比如你的网站是 https://xxx.com, 后台会使用 referer: https://xxx.com 来检测,微博有效则直接重定向到微博的地址,如果检测的时候返回 403 了,则轮换到下一个。如果有一天这三个都失效了,后台会自动再上传,而你引用的地方完全不需要更新,对页面引用是透明的。

    我自己的几个网站一直在用,很方便,终于可以统一管理所有的图片了,而且也不用担心存储空间什么的,什么图片都往上仍就好了。

    当然还是有很多人担心我这个说不定哪天就倒闭了,第一是不敢直接用跳转链接,只把它当一个上传的图床,使用的还是微博或者阿里的链接,比较大厂会比较安心一点,即便我这个站不在了至少图片是没有问题的,当然这么用也是 OK 的,虽然我没有这个担心~~

    既然有很多人担心,于是我花时间搞了一个 docker 镜像出来,用于部署。目前源码应该是不打算直接开源了,毕竟写代码都是有成本的,开源与否都是个人选择,打算长期维护的东西需要精力,各位应该也都理解,请勿喷,现在直接说一下怎么安装。

    首先安装一下 docker 和 docker-compose,这个不会安装的直接在网上找一下好了。

    然后写一个 docker-compose.yml

    version: '3.3' services: mongo: image: mongo volumes: - mongo_db:/data/db:rw restart: always privileged: true redis: image: redis volumes: - redis_db:/data:rw restart: always privileged: true rabbitmq: image: rabbitmq:management restart: always privileged: true superbed: depends_on: - mongo - redis - rabbitmq image: zkdfbb/superbed ports: - "8000:8000" volumes: - ./config.sh:/code/config.sh - ./images:/code/static/images restart: on-failure privileged: true volumes: mongo_db: redis_db: 

    再提供一个配置文件 config.sh

    export SUPERBED_TOKEN= export SUPERBED_TOnGJI= export ADDRESS="http://192.168.1.1:8000" export ENDPOINTS=alicdn,sohu,sogou export ADMIN_USER=admin export ADMIN_PWD=123456 export ADMIN_EMAIL= export MONGO_HOST=mongo export MQ_HOST=rabbitmq export REDIS_HOST=redis export EMAIL_SENDER= export EMAIL_SMTP= export EMAIL_USER= export EMAIL_PWD= export Z4A_USER= export Z4A_PWD= 

    其中配置文件的说明如下:

    SUPERBED_TOKEN: 用于授权的 token

    SUPERBED_TONGJI:百度统计,就是 https://hm.baidu.com/hm.js? 后面跟着的那一串 32 个字符,用来安装百度统计的

    ADDRESS:你的网站的地址,可以是域名或者 ip+端口都行

    ENDPOINTS:默认上传的图床,用逗号分隔

    ADMIN_USER:创建的管理员的账号

    ADMIN_PWD:管理员密码

    ADMIN_EMAIL:管理员的邮箱

    EMAIL_SENDER:用户注册时,用来发送注册验证码的邮箱,后面几个 EMAIL_开头的分别是 smtp 地址,用户名和密码

    Z4A_USER/Z4A_PWD:几个使用 chevereto 搭建的图床的用户名和密码,目前支持

    imgchr: https://imgchr.com

    jpgdog: https://jpg.dog

    aphoto: https://a.photo

    imgbb: https://imgbb.com

    z4a: https://www.z4a.net

    miaosu: https://miao.su

    moetu: https://moetu.org

    photouploads: https://photouploads.com

    biuu: https://pic.biuu.me

    imgrpost: https://imgrpost.com

    tryimg: http://tryimg.com

    用户名和密码和 Z4A_USER 类似,就是前面的名称大写加上_USER 和_PWD

    这样会上传到对应图床的自己的账号下面,如果不提供的话就相当于游客上传的

    上传的图床目前支持:

    weibo (需要自己配置微博账号密码,如果非常用地址会遇到验证码,不建议使用)

    sogou

    sohu

    baidu

    juejin

    qihu

    vimcn

    uploadcc

    catbox

    以及上面说的那几个 chevereto 图床

    这两个文件都写完之后,在当前目录使用 docker-compose up -d,等待安装完成,过几秒钟就可以直接用 ip+端口访问了,如果 ADDRESS 是域名,则需要自己配置 nginx 转发,转发的地址是 127.0.0.1:8000,如果 8000 端口已经被占用,则修改一下 docker-compose.yml:

     ports: - "8010:8000" # 将 8000 端口换位 8010 端口 

    目前小范围测试,可以提供 5 个授权码,也就是 SUPERBED_TOKEN,先到先得 ~

    26 条回复    2019-04-14 07:52:22 +08:00
    asLw0P981N0M0TCC
        1
    asLw0P981N0M0TCC  
       2019-04-11 23:13:27 +08:00 via iPhone
    到!
    kxh
        2
    kxh  
       2019-04-11 23:17:59 +08:00 via Android
    第二到
    zkdfbb
        3
    zkdfbb  
    OP
       2019-04-11 23:25:25 +08:00
    需要的提供一下邮箱吧
    gzlock
        4
    gzlock  
       2019-04-11 23:28:49 +08:00
    “比如你的网站是 https://xxx.com, 后台会使用 referer: https://xxx.com 来检测”
    都有后端做检测了,直接抹掉 referer 再向微博图床请求读图是不是更简单暴力呢
    zkdfbb
        5
    zkdfbb  
    OP
       2019-04-11 23:34:01 +08:00
    @gzlock 如果有防盗链,可能就是不带 referer 返回 200,带 referer 返回 403
    dongisking
        6
    dongisking  
       2019-04-11 23:39:53 +08:00 via Android
    支持,一直在用聚合图床,很好用!
    longyongcai
        7
    longyongcai  
       2019-04-12 04:15:51 +08:00 via Android
    支持
    gzlock
        8
    gzlock  
       2019-04-12 04:43:47 +08:00 via Android
    @zkdfbb 我的意思是用直接用后端做图片的数据转发,算是耗流量但减少代码量的方案
    msg7086
        9
    msg7086  
       2019-04-12 05:33:17 +08:00
    @gzlock 耗流量还要用图床做什么,直接存本地读就行了。和带宽钱比,硬盘才几个钱……
    JmmBite
        10
    JmmBite  
       2019-04-12 06:58:23 +08:00
    bWFvamllbWluZ0BnbWFpbC5jb20=
    gclm
        11
    gclm  
       2019-04-12 07:51:56 +08:00 via Android
    1719982754#qq.com 如果还有吗的话麻烦大佬给我发一个
    8hfq
        12
    8hfq  
       2019-04-12 07:59:45 +08:00
    支持一下。 想要个授权码 NTEwMTE2OTQ5QHFxLmNvbQ==
    SingeeKing
        13
    SingeeKing  
    PRO
       2019-04-12 08:18:55 +08:00
    好想来晚了……

    singeeking#gmail.com
    Orz
        14
    Orz  
       2019-04-12 08:25:30 +08:00
    i#orz.li thx
    slwl
        15
    slwl  
       2019-04-12 08:38:00 +08:00
    不知道大佬还送不。起来晚了吗? slwl93#gmail.com
    hhhfffhhh
        16
    hhhfffhhh  
       2019-04-12 09:55:12 +08:00
    yaoyige~
    nanaw
        17
    nanaw  
       2019-04-12 10:08:40 +08:00 via Android
    用 referer 字段检测?日常禁用路过。不过这也是个想法,伪造原站的 referer 怎么样?
    cszhiyue
        18
    cszhiyue  
       2019-04-12 13:48:57 +08:00
    测试一下
    hahaba
        19
    hahaba  
       2019-04-12 13:49:42 +08:00   2
    终结!我问了微博消费者 BG 的同事,目前没有打算限制外链,因为历史原因,他们也没有办法进行全量限制,至少未来几年内是不会进行限制
    hmzt
        20
    hmzt  
       2019-04-12 14:28:05 +08:00
    只用请求头限制跟没限制一样,大量的浏览器扩展可以伪造
    zkdfbb
        21
    zkdfbb  
    OP
       2019-04-12 23:36:05 +08:00
    @xunbug 赞赞赞,这样至少微博还是好用的
    Meiyun
        22
    Meiyun  
       2019-04-13 05:59:38 +08:00 via Android
    还是早点做打算,资本家的话不可信
    自己搭建演示:imgurl.org
    作者:xiaoz.me

    ImgURL 是一款使用 PHP + SQLite 3 开发的图床程序,免费开源,支持图像裁剪、压缩、自动鉴黄识别等多种功能,部署简单,管理方便。

    v2.2 更新内容
    新增 API 支持
    优化探索发现,支持分页、图片筛选
    支持自定义提示说明
    修复部分 BUG,优化细节
    ImgURL 已经实现功能
    拽拖上传、多图上传、Ctrl + V 粘贴上传、URL 上传
    图片裁剪,自动生成缩略图
    限制访客上传数量
    图片压缩 /批量压缩
    图片鉴黄 /批量鉴黄
    API 支持
    hahaba
        23
    hahaba  
       2019-04-13 12:24:55 +08:00
    @Meiyun 至少他们比私人搭建的稳
    longyongcai
        24
    longyongcai  
       2019-04-13 13:01:54 +08:00
    @longyongcai
    @xunbug 不是私信发码的吗?
    gz911122
        25
    gz911122  
       2019-04-13 18:27:09 +08:00
    @Meiyun 这个厉害 感谢开源
    Meiyun
        26
    Meiyun  
       2019-04-14 07:52:22 +08:00 via Android
    @xunbug 网络稳而已,哪天被限制多不方便 还是自建方便 本身不是大流量,加加个自动备份 完美
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     969 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 24ms UTC 19:00 PVG 03:00 LAX 12:00 JFK 15:00
    Do have faith in what you're doing.
    ubao 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