基于python tornado实现的简易图床

项目地址

因为买了阿里/腾讯的云服务器,但是使用云存储还需要收费,又加上家里正好有一台nas,又加上闲的没事,所以搞了一个小脚本

这个项目主要功能是为typora增加一个自定义图床

欢迎提出issues和pr,如果闲的没事会考虑增加一个web界面来上传图片

环境为:python3.10+

conf.ini参数解释:

base_url:server部署的地址,默认为本机32251端口
secret_key:server端与客户端定义的密钥

本地运行首先执行:

pip install -r requirements.txt

docker运行示例:

docker run --name pyimgs -e PORT=端口 -e SECRET_KEY=密钥 -v 本地路径:/pyimgs/upload -p 本地端口:容器端口 -d freenn/pyimgs:1.2

命令行启动服务端示例:

python server/main.py --port=端口 --secret_key=密钥

客户端启动示例:

首先运行一遍下面的命令,带不带参数都可以

python client/app.py <参数一>图片地址  <参数二>图片地址 ...

然后生成了conf.ini配置文件,修改配置文件中的base_urlsecret_key与服务端一致

  • 备注1:conf.ini中的value不需要加引号

  • 备注2:也可以在这里下载客户端exe

运行方式为,先双击exe文件,生成log文件夹和conf.ini默认配置,然后将图片拖动到exe文件上即可上传文件

typora配合使用:

具体使用方法如下

  • 第一步:

    ctrl+逗号打开偏好设置

  • 第二步:

    点击图像并且将配置改为图片相同的设置

  • 第三步

    将上传服务改为Custom Command,将命令改为app.exe所在位置

  • 第四步

    点击验证图片上传选项

    提示成功说明上传成功

    如果失败则查看日志并且提交到issues

基于python tornado实现的简易图床的更多相关文章

  1. 基于Python Tornado的在线问答系统

    概述 本项目使用最新的Tornado开发.实现了在线提问,回答,评论等功能.使用到Tornado的generator,长轮询等等技术, 支持MySQL的异步连接. 详细 代码下载:http://www ...

  2. 通过jsDelivr + github 搭建一个简易图床

    应用场景: 在大型项目里需要很多图片时,不会直接把图片存储在项目文件夹里,也不推荐直接用数据库存储,而是用第三方存储,cdn,也可以自己搭个存储图片的服务器,等等方式,如果时自己练练手,做做博客,写写 ...

  3. 监控redis数据库应用状态:python,tornado实现

    公司里最近redis服务器压力越来越大,其大概情况,只能从操作系统层面看,并不详尽,故同事在网上找了一个叫做 redis-live的开源项目,我配合部署了一下,还真有点意思,并解决了其中部分小debu ...

  4. Python Tornado框架(ioloop对象分析)

    网上都说nginx和lighthttpd是高性能web服务器,而tornado也是著名的高抗负载应用,它们间有什么相似处呢?上节提到的ioloop对象是如何循环的呢?往下看. 首先关于TCP服务器的开 ...

  5. 一行导出所有任意微软SQL server数据脚本-基于Python的微软官方mssql-scripter工具使用全讲解

    文章标题: 一行导出所有任意微软SQL serer数据脚本-基于Python的微软官方mssql-scripter工具使用全讲解 关键字 : mssql-scripter,SQL Server 文章分 ...

  6. 【Machine Learning】决策树案例:基于python的商品购买能力预测系统

    决策树在商品购买能力预测案例中的算法实现 作者:白宁超 2016年12月24日22:05:42 摘要:随着机器学习和深度学习的热潮,各种图书层出不穷.然而多数是基础理论知识介绍,缺乏实现的深入理解.本 ...

  7. 基于Python+Django的Kubernetes集群管理平台

    ➠更多技术干货请戳:听云博客 时至今日,接触kubernetes也有一段时间了,而我们的大部分业务也已经稳定地运行在不同规模的kubernetes集群上,不得不说,无论是从应用部署.迭代,还是从资源调 ...

  8. 关于《selenium2自动测试实战--基于Python语言》

    关于本书的类型: 首先在我看来技术书分为两类,一类是“思想”,一类是“操作手册”. 对于思想类的书,一般作者有很多年经验积累,这类书需要细读与品位.高手读了会深有体会,豁然开朗.新手读了不止所云,甚至 ...

  9. psutil一个基于python的跨平台系统信息跟踪模块

    受益于这个模块的帮助,在这里我推荐一手. https://pythonhosted.org/psutil/#processes psutil是一个基于python的跨平台系统信息监视模块.在pytho ...

  10. 一次完整的自动化登录测试-基于python+selenium进行cnblog的自动化登录测试

    Web登录测试是很常见的测试!手动测试大家再熟悉不过了,那如何进行自动化登录测试呢!本文作者就用python+selenium结合unittest单元测试框架来进行一次简单但比较完整的cnblog自动 ...

随机推荐

  1. Golang接收者方法语法糖

    1.概述 在<Golang常用语法糖>这篇博文中我们讲解Golang中常用的12种语法糖,在本文我们主要讲解下接收者方法语法糖. 在介绍Golang接收者方法语法糖前,先简单说下Go 语言 ...

  2. yaml的读写

    yaml文件的读写是真的快,也很简单.代码如下:from ruamel.yaml import YAMLimport os # 读取yaml配置文件def read_yaml(yaml_path): ...

  3. 2019年蓝桥杯C/C++大学B组省赛真题(等差数列)

    题目描述: 数学老师给小明出了一道等差数列求和的题目.但是粗心的小明忘记了一部分的数列,只记得其中N 个整数. 现在给出这N 个整数,小明想知道包含这N 个整数的最短的等差数列有几项? 输入格式 输入 ...

  4. nodejs使用eggjs创建项目,接入influxdb完成单表增删改查

    转载请注明出处: 1.Eggjs 特性: Eggjs 是 Node.js 服务端应用开发框架,它提供了一套约定,使开发者能够快速搭建.开发和部署应用.以下是 Egg.js 的一些特性和作用: 框架内置 ...

  5. C++面试八股文:聊一聊指针?

    某日二师兄参加XXX科技公司的C++工程师开发岗位第17面: 面试官:聊一聊指针? 二师兄:好的. 面试官:你觉得指针本质上是什么? 二师兄:这要从内存地址开始说起了.如果有一块容量是1G的内存,假设 ...

  6. 衔尾法解决当无法使用空闲中断以及DMA中断时配置DMA接收串口不定长数据

    [Ooonly新人贴]记录工作中遇到的问题,话不多说先上干货 问题:类似K线与蓝牙接收部门模块,要求由原来的接收串口中断改为DMA接收.据说要用到空闲中断与DMA中断,但是经仿真发现DMA每完成传输一 ...

  7. 6大数据实战系列-sparkSql实战

    sparkSql两个最重要的类SqlContext.DataFrame,DataFrame功能强大,能够与rdd互转换.支持sql操作如sql().where.order.join.groupBy.l ...

  8. Java使用数组存储成绩,输出成绩列表,总分,平均分

    代码如下: public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out. ...

  9. TornadoFx 页面之间的数据传递

    原文地址: TornadoFx 页面之间的数据传递 - Stars-One的杂货小窝 和Android开发一样,经常遇到两个页面之间需要进行数据的交互传输,本文讲解下TornadoFx框架中,页面之间 ...

  10. WebAPI公开接口请求签名验证

    前言 现在的系统后端开发的时候,会公开很多API接口 对于要登录认证后才能访问的接口,这样的请求验证就由身份认证模块完成 但是也有些接口是对外公开的,没有身份认证的接口 我们怎么保证接口的请求是合法的 ...