Poke API RS

July 28, 2026 · View on GitHub

Poke API RS 是一个基于 Rust 的命令行工具,用于帮助你安装、更新 DF-Poke 本地仓库,并提供一个轻量级图片服务,支持随机返回图片、生成可访问链接,以及获取图片列表 JSON。

功能特性

  • 支持将 DF-Poke 仓库安装到本地目录 ./DF-Poke
  • 支持更新已有仓库,包含常规的 fetch / merge 流程,也支持更新失败后的强制 reset + rebase
  • 内置 HTTP 服务,可随机返回图片、生成图片链接,或返回图片列表 JSON
  • 可通过环境变量控制端口、重定向行为和原始资源地址

快速开始

方式一:推荐,直接下载发布版二进制

如果你不想手动安装 Rust 环境,建议前往 Releases 下载对应操作系统的预编译二进制压缩包。

  • 发布页提供的是对应平台的 tar.gz 压缩包
  • 解压后即可得到可执行文件
  • Windows 下通常会得到 poke-api-rs.exe
  • Linux / macOS 下通常会得到 poke-api-rs

下载后即可直接运行:

./poke-api-rs install
./poke-api-rs run

如果你使用的是 Windows,可以在 cmdPowerShell 中直接运行 poke-api-rs.exe

方式二:从源码编译

如果你希望自己从源码构建,可以按下面的步骤操作。

运行环境

  • Rust 和 Cargo(建议使用较新的稳定版)
  • 终端环境
git clone https://github.com/DenFengLai/DF-Poke-Api.git
cd DF-Poke-Api
cargo build --release

构建完成后,可在 target/release 目录下找到可执行文件。

安装 DF-Poke

cargo run -- install

执行后会依次:

  • 询问你想要使用的克隆来源
  • 询问仓库 URL
  • 询问克隆深度
  • 将内容克隆到 ./DF-Poke

启动服务

cargo run -- run

如果你使用的是编译后的二进制,也可以直接执行:

./target/release/poke-api-rs run

默认监听地址为:

http://0.0.0.0:8080

你可以在浏览器或命令行中访问:

curl http://127.0.0.1:8080/

更新 DF-Poke

cargo run -- update

如果更新失败,程序会提示你是否尝试执行强制更新流程。

环境变量

以下环境变量可用于控制服务行为:

  • PORT:服务监听端口,默认值为 8080
  • IMAGE_MAP:当设置为 1trueyeson 时,服务会将图片映射到 /image/...
  • RAW_BASE:设置后,服务会优先返回指向该地址的原始链接
  • RUST_LOG:控制日志级别,例如 infodebug

示例

PORT=9090 IMAGE_MAP=1 cargo run -- run
RAW_BASE=https://example.com/raw cargo run -- run

API 接口

根路径

  • GET /
    • 若开启 RAW_BASEIMAGE_MAP,返回重定向到对应链接
    • 否则直接返回一张随机图片的二进制内容

获取链接

  • GET /link
    • 返回一条随机图片链接文本

强制跳转

  • GET /go
    • 强制重定向到随机图片链接

图片列表

  • GET /albums
  • GET /json
    • 返回当前可用相册和图片列表的 JSON
    • 可通过 ?name=相册名 过滤单个相册

图片映射

  • GET /image/{*path}
    • IMAGE_MAP=1 时可访问 DF-Poke 中的图片文件

项目结构

.
├── Cargo.toml
├── src/
│   └── main.rs
└── README.md

构建项目

cargo build --release

说明

这个项目本质上是一个「本地 DF-Poke 管理 + 图片服务」的 Rust 小工具,适合在本地快速拉取图库资源,并通过简单的 HTTP 接口访问图片。

License

MIT License

Copyright © 2026 DenFengLai

See LICENSE for the full license text.