Box Java SDK에서 Box API를 사용해보십시오.
개요
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.javaReader 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.pdf
가 test.pdf
로 원하는 폴더에 업로드되고 콘솔에 해당 URL이 표시됩니다.
Reference
이 문제에 관하여(Box Java SDK에서 Box API를 사용해보십시오.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/suzuq/items/ab1df48a598fe42c77ca
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
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.javaReader 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.pdf
가 test.pdf
로 원하는 폴더에 업로드되고 콘솔에 해당 URL이 표시됩니다.
Reference
이 문제에 관하여(Box Java SDK에서 Box API를 사용해보십시오.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/suzuq/items/ab1df48a598fe42c77ca
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
<dependency>
<groupId>com.box</groupId>
<artifactId>box-java-sdk</artifactId>
<version>2.48.0</version>
</dependency>
Reader reader = new InputStreamReader(BoxSdkTest.class.getClassLoader().getResourceAsStream("config.json"));
BoxConfig boxConfig = BoxConfig.readFrom(reader);
BoxDeveloperEditionAPIConnection api = BoxDeveloperEditionAPIConnection.getAppEnterpriseConnection(boxConfig);
BoxUser user = BoxUser.getCurrentUser(api);
BoxUser.Info userInfo = user.getInfo();
System.out.println("userInfo : "+ userInfo.getName());
BoxFolder folder = new BoxFolder(api, "***********");
BoxFolder.Info info = folder.getInfo();
System.out.format("[%s] %s\n", info.getID(), info.getName());
FileInputStream input = new FileInputStream("hoge.pdf");
BoxFile.Info newFileInfo = folder.uploadFile(input, "test.pdf");
System.out.println("https://app.box.com/file/" + newFileInfo.getID());
Reference
이 문제에 관하여(Box Java SDK에서 Box API를 사용해보십시오.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/suzuq/items/ab1df48a598fe42c77ca텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)