使用 Python 脚本一键上传图片到兰空图床并自动复制链接

对于博客作者、开发者或任何经常需要处理图片的人来说,图床是绕不开的工具。兰空图床(Lsky Pro)凭借其强大的功能和现代化的界面,成为了许多自建图床用户的首选。

但是,传统的“打开浏览器 -> 登录 -> 拖拽上传 -> 点击复制链接”的流程在需要频繁插入图片时显得格外繁琐,严重打断写作或开发的思路。

今天,我将分享一个简单的 Python 脚本,它能彻底改变你的图片上传体验。

核心功能:快,准,狠

这个脚本旨在实现一个目标:以最快速度将本地图片转换为可用的网络链接。

它具备以下核心特性:

  1. 完全脱离浏览器:直接在终端(命令行)通过一条命令完成上传。
  2. 基于文件名传参:无需复杂的配置,只需告诉脚本你要传哪个文件。
  3. 自动复制到剪切板:这是灵魂功能!上传成功后,图片 URL 会自动进入你的系统剪切板,你只需在 Markdown 编辑器里按下 Ctrl+V (或 Cmd+V) 即可。
  4. 安全鉴权:使用 Lsky Pro V2 标准的 API Token 进行验证,无需暴露账号密码。

准备工作

在使用脚本之前,请确保你满足以下条件:

  • Python 环境:已安装 Python 3.x。
  • 兰空图床账号:你拥有一个 Lsky Pro (V2版本) 的使用权限。
  • API Token:在图床后台获取了有效的 API 令牌(通常在“个人中心” -> “令牌管理”中生成)。

第一步:安装依赖

这个脚本依赖两个强大的 Python 库:

  • requests: 用于发送 HTTP 上传请求。
  • pyperclip: 用于操作系剪切板。

打开你的终端或命令提示符,运行以下命令安装它们:

1
pip install requests pyperclip

(注:Linux 用户如果发现剪切板功能失效,可能需要额外安装 xclipxsel,例如:sudo apt-get install xclip)

第二步:获取并配置脚本

新建一个文本文件,命名为 upload.py(或者你喜欢的任何名字),然后将下方的代码粘贴进去。

查看其它好用的脚本:zhyong26/Mac_shells: 个人使用脚本

⚠️ 重要配置: 在保存之前,你必须修改代码顶部的 配置区,填入你自己的图床信息。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
import requests
import sys
import os
import pyperclip # 引入剪切板库

# ============================================
# --- 配置区 (请在此处修改为你的信息) ---
# 1. 你的图床 API 地址,必须以 /api/v1/upload 结尾
API_URL = "https://your-domain.com/api/v1/upload"

# 2. 你的 API Token (在个人中心 -> 令牌管理中获取)
# 或者使用curl命令获取
# 注意:Token 通常是一长串字符,有时包含开头的数字和竖线,请完整复制。
TOKEN = "your_auth_token_here"
# ============================================

def upload_to_lsky(file_path):
# 1. 检查文件是否存在
if not os.path.isfile(file_path):
print(f"❌ 错误: 找不到文件 '{file_path}'")
return

print(f"正在上传: {os.path.basename(file_path)} ...")

# 2. 构造请求头 (使用 Bearer Token 鉴权)
headers = {
'Authorization': f'Bearer {TOKEN}',
'Accept': 'application/json',
# 伪装 User-Agent 防止部分防火墙拦截
'User-Agent': 'Mozilla/5.0 (Python Lsky Uploader)'
}

try:
# 3. 读取文件并准备上传
# 使用 'rb' 模式读取二进制流
with open(file_path, 'rb') as f:
# 构造 multipart/form-data 表单,字段名为 'file'
files = {
'file': (os.path.basename(file_path), f)
}

# 4. 发送 POST 请求
# 设置 timeout 防止网络卡死
response = requests.post(API_URL, headers=headers, files=files, timeout=30)

# 5. 处理响应
if response.status_code == 200:
res_data = response.json()
# 再次确认 API 返回的状态也是 true
if res_data.get('status'):
# 提取 URL
img_url = res_data['data']['links']['url']

# ---> 核心步骤:复制到剪切板 <---
pyperclip.copy(img_url)

print(f"✅ 上传成功!")
print(f"🔗 URL: {img_url}")
print("📋 状态: 链接已自动复制到剪切板,直接粘贴即可!")
else:
print(f"❌ 上传失败 (API拒绝): {res_data.get('message')}")
elif response.status_code == 401:
print("❌ 认证失败:Token 无效或已过期,请检查配置。")
else:
print(f"❌ 网络请求失败 | HTTP 状态码: {response.status_code}")
# 调试时可取消下面注释查看详细信息
# print(f"响应内容: {response.text}")

except Exception as e:
print(f"❌ 程序运行异常: {str(e)}")

# 主程序入口
if __name__ == "__main__":
# 检查命令行参数是否足够
if len(sys.argv) < 2:
print("使用方法错误。")
print("正确用法: python upload.py <本地图片路径>")
print("示例: python upload.py screenshot.png")
else:
# 获取命令行传入的第一个参数作为文件路径
target_file = sys.argv[1]
upload_to_lsky(target_file)

第三步:享受极速体验

配置完成后,保存文件。现在你可以体验飞一般的上传速度了。

打开终端,进入 upload.py 所在的目录。

场景 1:上传当前目录下的图片

假设你有一个 demo.jpg 在当前目录下:

1
python upload.py demo.jpg

场景 2:上传其他目录的图片

你也可以使用绝对路径或相对路径:

1
python upload.py /Users/username/Desktop/截图.png

神奇时刻:

执行命令几秒后,你将看到如下输出:

1
2
3
4
正在上传: demo.jpg ...
✅ 上传成功!
🔗 URL: https://your-domain.com/i/2023/10/27/653a1b2c3d4e5.jpg
📋 状态: 链接已自动复制到剪切板,直接粘贴即可!

此时,无需任何额外操作,直接回到你的 Markdown 编辑器中按下粘贴键,图片链接就出现在那里了。

继续优化:使用alias命令

为方便更好地复制,可以使用alias直接执行命令,任意地方即可上传图片,可参考我的配置,在.zshrc.bashrc虽添加,注意路径更改为自己实际的全路径。

1
alias upload_lsky="/Users/zhyong/Project/local_python_env/.venv/bin/python3 ~/Project/local_python_env/upload_lsky.py"

如下任意位置执行upload_lsky命令,即可快捷上传图片了。

结语

通过这个不到 80 行的 Python 脚本,我们成功地将一个繁琐的图床交互过程简化为了一行命令。这不仅节省了时间,更保持了工作心流的连贯性。相比使用Molunerfinn/PicGo等本地图片上传软件,也更加方便快捷。

如果你是 Typora 用户,甚至可以将此脚本配置为 Typora 的自定义上传服务,实现真正的“复制图片 -> 粘贴到 Typora -> 自动上传”的无缝体验。

快去试试吧,让你的写作效率起飞!


AI 总结 (Qwen API)

生成时间: 2026-02-18 20:04:11

深度总结:

该文是一篇面向开发者与内容创作者的高效工作流实践指南,核心围绕**自动化图片上传至自建图床(Lsky Pro)**这一高频痛点展开。文章不仅提供了一个轻量、健壮、开箱即用的 Python 脚本,更系统性地构建了一套「命令行驱动 + API 鉴权 + 剪切板集成」的端到端解决方案。

其深层价值体现在三个维度:
🔹 人机交互优化:彻底摒弃浏览器 GUI 依赖,将多步手动操作压缩为单条终端命令(python upload.py xxx.png),显著降低认知负荷,保障写作/开发心流;
🔹 安全与可维护性设计:采用标准 Bearer Token 鉴权(符合 Lsky Pro V2 API 规范),避免明文账号密码,配置解耦清晰(API_URL/TOKEN 独立声明),便于团队复用与环境隔离;
🔹 跨平台工程意识:兼顾 Windows/macOS/Linux 差异(如提示安装 xclip/xsel),并内建健壮错误处理(文件存在性校验、HTTP 状态码分级响应、JSON 解析容错、超时控制),体现生产级脚本思维。

此外,脚本虽仅约 80 行,却精准覆盖了现代 CLI 工具的关键能力:参数解析、HTTP 文件上传(multipart/form-data)、剪切板交互、用户反馈(emoji 可视化状态)、调试友好性(注释掉的 debug 输出)。它不仅是“工具”,更是可扩展自动化生态的原子组件——文中提及的 Typora 集成即印证其作为底层能力被上层应用调用的潜力。


核心关键词标签(3–5个):

#Python脚本 #LskyPro #图床自动化 #API上传 #剪切板集成