OkFile 技术实测:API 上传、CLI 上传与静态站点发布
测试时间:2026-06-13
说明:本文仅记录技术验证过程,示例中的凭证信息均已脱敏处理。
背景
这次测试的目标很简单:验证一个文件上传工具在三种常见场景下是否顺手。
- 场景一:直接调用 HTTP API 上传文件
- 场景二:通过 CLI 上传单个文件
- 场景三:把本地目录发布成静态站点
我重点关注三件事:流程是否清晰、命令是否直观、输出结果是否适合自动化集成。
环境准备
安装依赖
py -3 -m pip install requests
py -3 -m pip install okfile
okfile --version
配置访问凭证
okfile config --key <your-api-key>
配置完成后,CLI 可以直接读取本地配置,不需要每次重复传入 key。
一、API 上传流程验证
这个工具的 API 上传模型比较直接,可以概括为三步:
prepare -> upload -> complete
示例代码
import os
import json
import requests
API_KEY = "<your-api-key>"
session = requests.Session()
file_path = "test_okfile.txt"
filename = os.path.basename(file_path)
file_size = os.path.getsize(file_path)
prepare_resp = session.post("<upload-prepare-endpoint>", json={
"filename": filename,
"size": file_size,
"contentType": "text/plain",
"apiKey": API_KEY,
}).json()
upload_id = prepare_resp["id"]
upload_url = prepare_resp["uploadUrl"]
with open(file_path, "rb") as f:
put_resp = session.put(upload_url, data=f, headers={
"Content-Type": "text/plain",
"Content-Length": str(file_size),
})
complete_resp = session.post("<upload-complete-endpoint>", json={
"id": upload_id,
}).json()
print(json.dumps(complete_resp, indent=2, ensure_ascii=False))
观察结果
- API 结构清晰,适合脚本集成
- 上传前先申请上传地址,便于服务端统一调度
- 完成上传后再显式调用完成接口,状态边界明确
这种设计对自动化流程比较友好,尤其适合接到 agent、CI 或内部工具链里。
二、CLI 上传文件验证
CLI 的体验更偏向日常使用,一行命令就能完成上传:
okfile upload test_okfile.txt --verbose
上传后会返回文件标识和可访问地址,适合做以下场景:
- 临时分享构建产物
- 给测试同学分发文件
- 在自动化任务中输出可访问结果
如果要检查状态,也可以继续查询:
okfile status <upload-id> --verbose
从使用感受上看,CLI 的优点是学习成本低,命令语义也比较直接。
三、静态站点发布验证
除了上传单文件,我还验证了目录发布能力。这个场景适合发布轻量 demo、说明页或者临时静态资源目录。
准备一个最小示例站点
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>OkFile 测试站点</title>
</head>
<body>
<h1>OkFile 静态站点发布测试</h1>
<p>通过命令行发布一个本地目录</p>
</body>
</html>
发布命令
okfile publish test_site --verbose
观察结果
- 目录内文件会被逐个处理
- 发布完成后会返回站点标识和入口地址
- 对只有少量文件的 demo 目录非常方便
这类能力对开发者尤其有用,因为很多时候我们需要的并不是正式上线,而是一个可快速打开和分享的临时页面。
四、没有 index.html 的情况
另一个值得注意的点是:如果发布目录里没有 index.html,系统会兜底提供目录浏览能力。
mkdir test_no_index
echo "hello" > test_no_index\readme.txt
okfile publish test_no_index
这意味着即使你只是想共享一组文件,而不是完整网页,也可以直接发布出去。
常用命令整理
| 命令 | 说明 |
|---|---|
okfile upload <文件> |
上传单个文件 |
okfile publish <目录> |
发布静态站点 |
okfile status <id> |
查询上传状态 |
okfile config --key <apikey> |
配置本地凭证 |
okfile --version |
查看 CLI 版本 |
总结
从这次实测结果来看,这个工具比较适合下面几类需求:
- 需要快速分享单个文件
- 需要把一个本地目录临时发布成站点
- 需要把上传能力接入脚本或 agent
API 方案更适合集成,CLI 方案更适合直接使用,目录发布能力则让它在 demo 分享和轻量托管场景里更实用。
如果后续要继续深入,我会优先关注两个方向:大文件失败重试体验,以及批量发布时的并发和稳定性表现。
测试记录 · 2026-06-13