Box Java SDK에서 Box API를 사용해보십시오.

7681 단어 자바BOX

개요



Box의 웹 API를 사용하여 회사 업무 시스템에서 Box 파일을 조작하고 싶습니다.
시스템 내에서 생성한 파일을 Box에 업로드하는 이미지입니다.
조사해 보면, 각종 프로그램 언어의 SDK가 있다 같기 때문에, 이번은 Java SDK를 사용해 보려고 생각합니다.

인증 지우기



API를 사용하려면 먼저 인증을 지워야 합니다.
Box의 API에는 몇 가지 인증 방식이 준비되어 있지만, 이번 유스 케이스에서는 JWT 인증이 적절하다고 생각합니다.
다른 인증 방법에 대해서는 공식 문서 를 체크해 주세요.

프로그램을 작성하기 전에 먼저 인증을 지우기 위해 Box에 애플리케이션을 등록합니다.

애플리케이션 등록



기본적으로는 아래 순서대로 OK입니다.
JWT를 사용한 설정

공개 키와 개인 키 쌍 의 섹션에서는, 이번은 「키 페어의 생성」을 선택합니다.

절차 대로 「공개/비밀 키 페어 생성」을 누르면, Json 파일이 다운로드 되므로, Java 프로젝트의 클래스 패스에 넣어 둡시다.


Java SDK 사용



설치



SDK는 Maven의 중앙 리포지토리에 있으므로 쉽게 사용할 수 있습니다.
<dependency>
    <groupId>com.box</groupId>
    <artifactId>box-java-sdk</artifactId>
    <version>2.48.0</version>
</dependency>

SDK를 사용하는 방법을 살짝 학습하려면 ↓를 보는 것이 좋습니다.
SDK Overview

다음은 간단한 조작을 시도합니다.

세션 연결



방금 클래스 패스에 넣어 둔 Json 파일을 읽는 것으로, ↓의 코드로 인증을 끝낼 수가 있습니다.

BoxSdkTest.java
Reader reader = new InputStreamReader(BoxSdkTest.class.getClassLoader().getResourceAsStream("config.json"));
BoxConfig boxConfig = BoxConfig.readFrom(reader);
BoxDeveloperEditionAPIConnection api = BoxDeveloperEditionAPIConnection.getAppEnterpriseConnection(boxConfig);

사용자 정보 표시



인증을 마쳤지만 지금 자신이 로그인한 사용자를 알아야 합니다.
Box의 파일이나 폴더는 권한이 있는 사용자가 아니면 조작할 수 없기 때문입니다.
아래 코드에서 사용자 이름을 표시해 봅시다.
BoxUser user = BoxUser.getCurrentUser(api);
BoxUser.Info userInfo = user.getInfo();
System.out.println("userInfo : "+ userInfo.getName());

콘솔에는 사전에 등록한 애플리케이션 이름이 표시되어야 합니다.
등록한 어플리케이션 자신의 유저로서 로그인하고 있는 상태인 것 같습니다.
이 사용자를 Box에서는 "서비스 계정"이라고 부릅니다.

Box API로 사용할 수 있는 유저에게는, 몇 가지 종류가 있습니다. 하지만, 이번은 이 서비스 어카운트를 사용해 가기로 합니다.

폴더 정보 표시



서비스 계정은 일반 사용자와 마찬가지로 파일과 폴더에 협업자로 추가할 수 있습니다.
"일반 구성"의 "서비스 계정 정보"에 서비스 계정의 이메일 주소가 표시되어 있으므로이를 원하는 폴더에 협업자로 추가해 보겠습니다.





아래와 같은 코드로 이 폴더의 정보를 표시할 수 있습니다.
BoxFolder folder = new BoxFolder(api, "***********");
BoxFolder.Info info = folder.getInfo();
System.out.format("[%s] %s\n", info.getID(), info.getName());
BoxFolder 의 생성자에게 건네주고 있는 *********** 에는, 폴더 ID를 지정합니다.
폴더 ID는 원하는 폴더의 URL에 포함됩니다. https://app.box.com/folder/*********** 라는 느낌이므로 folder 의 다음에 숫자를 넣어 주세요.

파일 업로드



이 폴더에 파일을 업로드해 봅시다.
FileInputStream input = new FileInputStream("hoge.pdf");
BoxFile.Info newFileInfo = folder.uploadFile(input, "test.pdf");
System.out.println("https://app.box.com/file/" + newFileInfo.getID());

이제 로컬 hoge.pdftest.pdf로 원하는 폴더에 업로드되고 콘솔에 해당 URL이 표시됩니다.

좋은 웹페이지 즐겨찾기