123网盘SDK-npm包已发布 - 实践

前言

大家好!今天想和大家分享一个我最近开源的项目:123 网盘 SDK。这个项目已经在 GitHub 开源,最近已经发布到 NPM,可以通过 npm i @ked3/pan123-sdk 直接安装使用。

项目背景:为什么要开发这个 SDK?

在使用 123 网盘官方 API 的过程中,我发现文件上传流程异常复杂,需要调用多个接口:

  1. 创建文件
  2. 获取上传地址和上传分片
  3. 列举已上传分片
  4. 完成上传
  5. 异步轮询获取上传结果

这种复杂的流程对开发者来说非常不友好,每次都要重复编写大量的代码。于是我决定开发一个简单易用的 SDK,让开发者能够通过几行代码就完成文件操作

✨ 核心API

  • 上传文件
  • 获取文件夹内容
  • 获取文件详情 (2025-05-29)
  • 获取文件下载链接
  • 在线解压文件
  • 获取直链链接 ,启用直链,禁用直链 (2025-06-02) v1.0.7

安装使用

安装

npm install @ked3/pan123-sdk

基础使用

ES Module 方式
import Pan123SDK from "@ked3/pan123-sdk"
;
const sdk =
new Pan123SDK({
clientId: "your_client_id"
,
clientSecret: "your_client_secret"
,
}
)
;
// 初始化 token
await sdk.initToken(
)
;
// 上传文件
const uploadResult =
await sdk.uploadFile("./example.zip"
, {
parentFileID: 0
, // 父目录ID,0表示根目录
containDir: false
, // 是否包含目录结构
duplicate: 1
, // 重名处理策略:1-重命名,2-覆盖,3-跳过
}
)
;
// 获取文件列表
const fileList =
await sdk.getFileList({
parentFileId: 0
,
limit: 100
,
searchData: ""
,
searchMode: 0
,
lastFileId: 0
,
}
)
;
// 获取下载链接
const downloadUrl =
await sdk.getFileDownloadUrl({
fileId: "123456789"
,
}
)
;
CommonJS 方式
const Pan123SDK = require("@ked3/pan123-sdk"
)
;
const sdk =
new Pan123SDK({
clientId: "xxx"
,
clientSecret: "xxx"
,
}
)
;
async
function main(
) {
await sdk.initToken(
)
;
const uploadResult =
await sdk.uploadFile(filePath, {
parentFileID: 14439872
,
containDir: false
,
duplicate: 2
,
}
)
;
}
main(
)
;

实用功能演示

在线解压功能

// 解压 ZIP 文件到指定文件夹
const result =
await sdk.zipFile({
fileId: "123456789"
, // ZIP文件ID
folderId: "987654321"
, // 解压目标文件夹ID
}
)
;

直链管理

// 启用文件直链
await sdk.enableDirectLink(fileId)
;
// 获取直链地址
const directUrl =
await sdk.getDirectLink(fileId)
;
// 禁用直链
await sdk.disableDirectLink(fileId)
;
posted @ 2025-07-20 22:23  wzzkaifa  阅读(106)  评论(0)    收藏  举报