当前位置: 首页 > article >正文

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文件IDfolderId: "987654321", // 解压目标文件夹ID
});

直链管理

// 启用文件直链
await sdk.enableDirectLink(fileId);// 获取直链地址
const directUrl = await sdk.getDirectLink(fileId);// 禁用直链
await sdk.disableDirectLink(fileId);
http://www.lryc.cn/news/2398456.html

相关文章:

  • 强制卸载openssl-libs导致系统异常的修复方法
  • 乐播视频v4.0.0纯净版体验:高清流畅的视听盛宴
  • Linux 命令全讲解:从基础操作到高级运维的实战指南
  • FreeRTOS的简单介绍
  • DeepSeek模型安全部署与对抗防御全攻略
  • Docker容器使用手册
  • 深入解析C++引用:从别名机制到函数特性实践
  • Fuse.js:打造极致模糊搜索体验
  • MyBatis分页插件(以PageHelper为例)与MySQL分页语法的关系
  • CentOS 7.9 安装 宝塔面板
  • 使用Redis作为缓存优化ElasticSearch读写性能
  • 项目交付后缺乏回顾和改进,如何持续优化
  • 从0开始学习R语言--Day15--非参数检验
  • Linux或者Windows下PHP版本查看方法总结
  • EC2 实例详解:AWS 的云服务器怎么玩?☁️
  • 第三发 DSP 点击控制系统
  • saveOrUpdate 有个缺点,不会把值赋值为null,解决办法
  • Java面试:企业协同SaaS中的技术挑战与解决方案
  • 【笔记】在 MSYS2 MINGW64 环境中降级 NumPy 2.2.6 到 2.2.4
  • 前端限流如何实现,如何防止服务器过载
  • 基于大模型的慢性硬脑膜下血肿预测与诊疗系统技术方案
  • vue入门环境搭建及demo运行
  • git checkout C1解释
  • 原始数据去哪找?分享15个免费官方网站
  • 宝塔部署 Vue + NestJS 全栈项目
  • # [特殊字符] Unity UI 性能优化终极指南 — LayoutGroup篇
  • Apache Iceberg 如何实现分布式 ACID 事务:深度解析大数据时代的可靠数据管理
  • 计算A图片所有颜色占B图片红色区域的百分比
  • 2024-2025-2-《移动机器人设计与实践》-复习资料-8……
  • 如何监测光伏系统中的电能质量问题?分布式光伏电能质量解决方案