51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

Hexo -34- 为自己的 Nginx 图床搭建 Python 上传服务适配 PicGo

通过 Nginx 建立自己的图床后,之前的 Picgo 无法使用,导致在文档中插入图片十分不便,本文记录自己搭建 Python 后端服务来为自己的图床适配 Picgo 的方法。

背景 {#背景}

  • 已经成功搭建 Nginx 图床

  • PicGo 上传图像十分方便,可以将图像数据放在数据包中向指定服务器发送

  • 此时我们有服务器,有工具,只差中间接洽的桥梁

  • Python 自带简易后端 flask,可以方便地获取数据包并返回我们需要的数据

实现要点 {#实现要点}

不同的使用者可能有不同的需求,我提供自己的实现思路,供大家参考。

调试 {#调试}

  • 链路没有打通前调试十分重要,具体方法为:
    • 在服务器安装 Python
    • 本地 VScode 远程调试服务器代码
    • 运行 flask 服务,本地使用 Picgo 发送数据包进行调试

思路 {#思路}

  • 服务器上使用 Python 开启 flask 监听特定端口
  • 服务器开通防火墙暴露端口
  • 本地 Picgo 向服务器地址发送数据包
  • flask 接收、解析数据,按照需求处理业务逻辑,返回文件 url
  • 将该服务设置为服务器开机启动服务,之后便再也不用操心无人接管 Picgo 数据包

实现方法 {#实现方法}

PicGo 端配置 {#PicGo-端配置}

  • 建议使用 Picgo 的自定义上传插件

  • 配置自定义 Web 图床设置

API 地址为服务器地址,后面 / 后可以接一段字符作为输入参数,我将其作为存放文件的子文件夹

post 参数名为文件所在参数名

其余建议不要填,不然会上传失败,不知道原因

服务器端配置 {#服务器端配置}

  • 引入库
  • 配置信息
  • 初始化 flask app
  • 核心数据解析于业务逻辑
  • 之前使用 PicGo 传图时经常遇到想要删除刚刚上传图像的需求,此处加了相关功能

在 API 链接里 / 后的字符串中如包含 __del__ 则删除刚刚上传的图像,返回操作结果

  • 如果没有配置 API 后的文件夹作为参数,使用默认二级文件夹
  • 运行服务
  • 完整代码

设置开机运行服务 {#设置开机运行服务}

  • 开机启动服务

参考资料 {#参考资料}



文章链接:
https://www.zywvvd.com/notes/hexo/website/34-uploader-for-myimgbed/uploader-for-myimgbed/

赞(0)
未经允许不得转载:工具盒子 » Hexo -34- 为自己的 Nginx 图床搭建 Python 上传服务适配 PicGo