Skip to content
基于Flask的Web自建图床,支持扩展又拍云、七牛云、阿里云OSS、腾讯云COS等后端存储(beta公测中)
Python HTML JavaScript Shell Makefile
Branch: master
Clone or download
Latest commit d0f784d Jan 16, 2020
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
Snapshot Initial commit Jan 5, 2020
src
.gitignore fixes topbar and update readme for up2qiniu Jan 7, 2020
.travis.yml
LICENSE Initial commit Dec 19, 2019
README.md upload src alias Jan 16, 2020

README.md

picbed

基于Flask的Web自建图床,默认存储在本地,支持扩展又拍云、七牛云、阿里云OSS、腾讯云COS等后端存储。

Build Status codecov

部署

  1. 要求: Python2.7、Python3.5+(含PyPy)和Redis

  2. 下载: git clone https://github.com/staugur/picbed && cd picbed/src

  3. 依赖: pip install -r requirements.txt

  4. 配置: config.py即配置文件,可以从环境变量中读取配置信息,必需的是picbed_redis_url

  5. 启动:

// 首先创建一个管理员账号 -h/--help显示帮助
$ python cli.py sa -u user -p password --isAdmin

// 开发环境启动
$ make run
// 正式环境,若需前台启动,将start换成run即可
$ sh online_gunicorn.sh start
  1. Nginx:
// 默认配置下,picbed启动监听127.0.0.1:9514,nginx配置示例:
server {
    listen 80;
    server_name picbed.domain.name;
    charset utf-8;
    client_max_body_size 12M;
    location ~ ^\/static\/.*$ {
        root /path/to/picbed/src/;
    }
    location / {
       proxy_pass http://127.0.0.1:9514;
       proxy_set_header Host $host;
       proxy_set_header X-Real-IP $remote_addr;
       proxy_set_header X-Forwarded-Proto $scheme;
       proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

文档

详细文档请访问:Picbed Docs

演示站

https://picbed.saintic.com

测试账号:test

测试密码:123456

对外服务(请勿修改密码),允许匿名上传,但是目前上传的图片保留删除权利!

扩展钩子

通过所谓的钩子扩展功能点,目前在图片保存时有一个钩子,可以藉此扩展后端存储。

目前我写的钩子如下:

名称 作用 GitHub
up2upyun 将图片保存到又拍云USS中 staugur/picbed-up2upyun
up2qiniu 将图片保存到七牛云KODO中 staugur/picbed-up2qiniu
up2oss 将图片保存到阿里云OSS中 staugur/picbed-up2oss
up2cos 将图片保存到腾讯云COS中 staugur/picbed-up2cos
up2smms 将图片保存到sm.ms中 staugur/picbed-up2smms
passport 接入passport登录 staugur/picbed-ssoclient

TODO

  • 登录登出钩子
  • 第三方网站直接上传
  • 可选开放注册
  • 图片物理删除
  • 已经扩展又拍、七牛、阿里云、腾讯云对象存储
  • 继续扩展其他公共图床,如青云、Ucloud、微博图床
  • base64图片上传
  • 粘贴上传
  • V2-聚合图床

客户端上传

- 使用PicGo上传到自定义的picbed图床

下载PicGo并安装,打开主界面,在 插件设置 中搜索 web-uploader 并安装,然后在 图床设置-自定义Web图床 中按照如下方式填写:

url: http[s]://你的picbed域名/api/upload
paramName: picbed
jsonPath: src
# 以上是匿名上传,仅在管理员开启匿名时才能上传成功
# 如需登录上传,请使用token(在控制台-个人资料-Token查看),以下两种任选:
customHeader: {"Authorization": "Token 你的Token值"}
customBody: {"token": "你的Token值"}

设置完之后选择自定义Web图床为默认图床即可。

预览图

目前beta版本基本完成,先来几张预览图(PS:前几张大概是平板效果,最后一张是PC效果)

未登录首页

登录页面

首页上传效果

首页上传复制

控制台管理员功能

管理我的图片

You can’t perform that action at this time.