FastCloudPan是一个聚合性网盘项目
支持多种网盘的上传、下载、获取文件列表等基础功能目前支持网盘:
- 123云盘
- 蓝奏云网盘 (开发中)
- FTP客户端 (开发中)
- HTTP客户端 (开发中)
- 敬请期待。。。
- JDK 8+
- Maven 3.6+(或 Gradle 7+)
目前暂未发布到公共 Maven 仓库,建议先本地构建后以本地依赖方式引入。
如后续发布中央仓库,可在此处补充标准 Maven / Gradle 坐标。
- 先阅读
OneTwoThreePan,了解核心入口能力。 - 再阅读
OneTwoThreeFile,了解文件模型字段。 - 最后阅读
onUploadListener,接入上传回调。
上传回调监听:onUploadListener.md
123云盘实现类:OneTwoThreePan.md
123云盘文件实现类:OneTwoThreeFile.md
123云盘用户信息实现类:OneTwoThreeUserInfo.md
| 网盘/客户端 | 文件列表 | 上传 | 下载 | 状态 |
|---|---|---|---|---|
| 123云盘 | ✅ | ✅ | ✅ | 可用 |
| 蓝奏云网盘 | 🚧 | 🚧 | 🚧 | 开发中 |
| FTP客户端 | 🚧 | 🚧 | 🚧 | 开发中 |
| HTTP客户端 | 🚧 | 🚧 | 🚧 | 开发中 |
需要你去123云盘开放平台申请key,才能使用
String clientId = "your-client_id";
String clientSecret = "your-client_secret";
// 获取 accessToken
String accessToken = OneTwoThreePan.getInstance().getAccessToken()[0];
//初始化云盘
OneTwoThreePan.getInstance().init(clientId, clientSecret, accessToken);获取用户手机号
String phoneNumber = OneTwoThreePan.getInstance().getUserInfo().getPassport();获取根目录文件列表
List<OneTwoThreeFile> fileList = OneTwoThreePan.getInstance().getFileList("0");
for(OneTwoThreeFile file : fileList){
System.out.println("fileName:" + file.getName() + " fileId:" + file.getId());
}上传文件
//要上传到的目录ID
String folderId = "0";
//要上传的文件路径
String filePath = "/xxx/xxx/1.png";
OneTwoThreePan.getInstance().uploadFile(folderId, filePath, new onUploadListener() {
@Override
public void onSuccess() {
System.out.println("上传成功");
}
@Override
public void onFailure(String error) {
System.out.println("上传失败:" + error);
}
@Override
public void onProgress(int progress) {
System.out.println("上传进度:" + progress);
}
@Override
public void onStateChanged(String state) {
System.out.println(state);
}
});下载文件
//要先获取文件的下载地址,然后再通过工具下载
String downloadUrl = OneTwoThreePan.getInstance().getFileDownloadUrl("fileId");注意:
123云盘的操作可能会抛出异常,所以建议使用try {}包裹try{ OneTwoThreePan.getInstance().xxx(); } catch (AccessTokenInvalidException e) { System.out.println("AccessToken错误:" + e.getMsg()); } catch (RequestTooManyException e) { System.out.println("请求过于频繁:" + e.getMsg()); } catch (UnknownException e) { System.out.println("请求错误:" + e.getMsg()); } catch (Exception e) { System.out.println("请求错误:" + e); }
| 异常类型 | 触发场景 | 建议处理方式 |
|---|---|---|
AccessTokenInvalidException |
token 失效或错误 | 重新获取 accessToken 后重试 |
RequestTooManyException |
请求频率过高 | 指数退避重试,降低并发 |
UnknownException |
服务端或未知错误 | 记录日志并进行有限次数重试 |
- 当前版本:
1.0 - 建议新增
CHANGELOG.md记录版本变更历史与升级注意事项。
根据 MIT 许可证开源