最近这几天看到 V 站上有不少讨论说新浪微博开始限制外链了,感觉到处蹭免费图床的日子终究不太安心,250 天前做了一个聚合图床专门用来未雨绸缪解决这种问题的,当时还在 V 站上发了帖子
https://www.v2ex.com/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,先到先得 ~
1
qwertyzzz 2019-04-11 23:13:27 +08:00 via iPhone
到!
|
2
kxh 2019-04-11 23:17:59 +08:00 via Android
第二到
|
3
zkdfbb OP 需要的提供一下邮箱吧
|
4
gzlock 2019-04-11 23:28:49 +08:00
“比如你的网站是 https://xxx.com, 后台会使用 referer: https://xxx.com 来检测”
都有后端做检测了,直接抹掉 referer 再向微博图床请求读图是不是更简单暴力呢 |
6
dongisking 2019-04-11 23:39:53 +08:00 via Android
支持,一直在用聚合图床,很好用!
|
7
longyongcai 2019-04-12 04:15:51 +08:00 via Android
支持
|
10
JmmBite 2019-04-12 06:58:23 +08:00
bWFvamllbWluZ0BnbWFpbC5jb20=
|
12
8hfq 2019-04-12 07:59:45 +08:00
支持一下。 想要个授权码 NTEwMTE2OTQ5QHFxLmNvbQ==
|
13
SingeeKing 2019-04-12 08:18:55 +08:00
|
16
hhhfffhhh 2019-04-12 09:55:12 +08:00
yaoyige~
|
17
nanaw 2019-04-12 10:08:40 +08:00 via Android
用 referer 字段检测?日常禁用路过。不过这也是个想法,伪造原站的 referer 怎么样?
|
18
cszhiyue 2019-04-12 13:48:57 +08:00
测试一下
|
19
hahaba 2019-04-12 13:49:42 +08:00 2
终结!我问了微博消费者 BG 的同事,目前没有打算限制外链,因为历史原因,他们也没有办法进行全量限制,至少未来几年内是不会进行限制
|
20
hmzt 2019-04-12 14:28:05 +08:00
只用请求头限制跟没限制一样,大量的浏览器扩展可以伪造
|
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 支持 |
24
longyongcai 2019-04-13 13:01:54 +08:00
|