Skip to content

Latest commit

 

History

History
76 lines (66 loc) · 2.65 KB

README.md

File metadata and controls

76 lines (66 loc) · 2.65 KB

百度云盘 Java SDK

已实现功能:

  • 授权,获取 accessToken、refreshToken
  • 上传文件/创建文件夹
  • 分享文件
  • 转存分享文件
  • 查询文件列表
  • 查询文件详情
  • 管理文件(删除/复制)

使用

  1. Maven 引用,最新版本为 https://mvnrepository.com/artifact/net.peihuan/baidu-pan-starter
<dependency>
    <groupId>net.peihuan</groupId>
    <artifactId>baidu-pan-starter</artifactId>
    <version>1.3.0</version>
</dependency>
  1. 修改application.yaml文件,添加配置
baidu-pan:
  client-id: "your client id"
  device-id: 1111111
  client-secret: "your secret"
  share-third-id: 111                   # 不需要分享则无需填写
  share-secret: "secret"                # 不需要分享则无需填写
  root-dir: "/apps/your/root/path/"     # 文件上传的根目录
  1. 注入 BaiduService 后配置持久化方式,即可使用:
@Component
public class BaiduTest {
    @Autowired
    private BaiduService baiduService;

    @PostConstruct
    public void init() {
        // 必须配置持久化,不配置默认为内存实现
        // TODO BaiduOps 需要用户基于 mysql or redis 来实现
        BaiduOps ops = new RedisOpsImpl();
        BaiduOAuthConfigStorage baiduOAuthConfigStorage = new BaiduOAuthConfigServiceImpl(ops);
        baiduService.setConfigStorage(baiduOAuthConfigStorage);
    }

    public void getAuthorizeUrl() {
        // 由于可能多个用户授权使用,state 可用于传递 userId
        System.out.println(baiduService.getAuthorizeUrl("http://your.redirct.com", "your state"));
    }

    public void getAuthorizeUrl(String code) {
        // 任何方法都需要传递 userId 来标记这个 code 属于哪个用户。
        // 如果该系统只有开发者一个人需要授权百度云盘,userId 填写任意一个固定值即可
        // 调用此方法后,内部会持久化 accessToken 和 refreshToken
        System.out.println(baiduService.getAccessTokenByCode("1", code, "http://your.redirct.com"));
    }

    public void upload(File file) {
        // 任何方法都需要传递 userId
        // userId 为 1 的用户上传一个文件至 /apps/your/root/path/object/path
        baiduService.getPanService().uploadFile("1", "object/path", file, RtypeEnum.OVERRIDE);
    }
}

其他: 如果你不用 Spring 框架,也可以自己 new 一个 baiduService 来使用:

BaiduService baiduService = new BaiduServiceImpl(properties, okHttpClient);
// config your
baiduService.setConfigStorage(baiduOAuthConfigStorage);