这是一个面向 123 云盘开放平台的 SDK 项目,目标是把官方开放 API 封装成更容易在业务服务端中使用的多语言 SDK。
当前已经完成 Node.js、.NET/C# 和 Go 版本 SDK。后续可以在同一仓库中继续增加其他语言实现。每种语言 SDK 都放在独立目录中,并维护自己的 README、测试和构建方式。
| 路径 | 说明 |
|---|---|
sdk-nodejs |
Node.js / TypeScript SDK,npm 包名为 chest123-pan-sdk |
sdk-nodejs/README.md |
Node.js SDK 使用文档 |
sdk-dotnet |
C#/.NET SDK,NuGet 包名为 Chest123.PanSdk |
sdk-dotnet/README.md |
.NET SDK 使用文档 |
sdk-go |
Go SDK,module path 为 github.com/memsys-lizi/Chest123/sdk-go |
sdk-go/README.md |
Go SDK 使用文档 |
123PanDoc |
123 云盘官方开放平台 API 的本地整理文档 |
123PanDoc/99-endpoint-index.md |
API 接口总索引 |
Node.js SDK 封装了 123 云盘开放平台的鉴权、文件管理、上传、下载链接、直链、分享、离线下载、图床、视频转码等能力。
最小示例:
import { createPan123Client } from 'chest123-pan-sdk';
const client = createPan123Client({
clientId: process.env.PAN123_CLIENT_ID,
clientSecret: process.env.PAN123_CLIENT_SECRET
});
const files = await client.files.list({
parentFileId: 0,
limit: 100
});更多用法见 sdk-nodejs/README.md。
.NET SDK 封装同一套 123 云盘开放平台能力,适用于 ASP.NET Core、Worker Service、控制台程序、桌面程序等 C# 项目。
最小示例:
using Chest123.PanSdk;
using Chest123.PanSdk.Models;
var client = new Pan123Client(new Pan123ClientOptions
{
ClientId = Environment.GetEnvironmentVariable("PAN123_CLIENT_ID"),
ClientSecret = Environment.GetEnvironmentVariable("PAN123_CLIENT_SECRET")
});
var files = await client.Files.ListAsync(new FileListRequest
{
ParentFileId = 0,
Limit = 100
});更多用法见 sdk-dotnet/README.md。
Go SDK 封装同一套 123 云盘开放平台能力,适用于 Go 服务端、CLI、任务程序等场景。
最小示例:
package main
import (
"context"
"fmt"
"os"
pan123 "github.com/memsys-lizi/Chest123/sdk-go"
)
func main() {
client := pan123.NewClient(pan123.Options{
ClientID: os.Getenv("PAN123_CLIENT_ID"),
ClientSecret: os.Getenv("PAN123_CLIENT_SECRET"),
})
files, err := client.Files.List(context.Background(), pan123.FileListRequest{
ParentFileID: 0,
Limit: 100,
})
if err != nil {
panic(err)
}
fmt.Println(files.FileList)
}更多用法见 sdk-go/README.md。
123PanDoc 是基于 123 云盘官方语雀文档整理出的本地 Markdown 文档集,方便开发 SDK 时查阅接口路径、请求参数、响应字段、上传流程和直链流程。
建议开发新语言 SDK 时先阅读:
123PanDoc/00-README.md123PanDoc/99-endpoint-index.md123PanDoc/04-upload-v2-recommended.md123PanDoc/06-direct-link.md
新增语言 SDK 时建议按语言创建独立目录:
sdk-nodejs/
sdk-go/
sdk-dotnet/
每个 SDK 目录应独立包含:
- SDK 源码
- README 使用文档
- 示例代码
- 单元测试和必要的 live test
- 对应语言生态的包管理配置
通用 API 事实来源统一放在 123PanDoc,避免不同语言 SDK 对接口字段和行为理解不一致。