概要
Boxに対して別のシステムからファイルのアップロード、削除やコラボレータの追加、削除などの操作をしたい場合に、BoxのAPIを利用しやすい形で提供しているBox SDKの使い方について記載したいと思います。
Box SDKの準備
Box SDKは公式に各種言語向けに提供されています。今回はJavaSDKを使用しましたので、記事中のコードもJavaで記載しています。基本的には各操作に関して考え方は同じになると思います。
SDKとツール - Box開発者向けドキュメントポータル
インストール
SDKはMavenやGradleから入手することができます。Box Java SDK
以下はMavenの例。
<dependency>
<groupId>com.box</groupId>
<artifactId>box-java-sdk</artifactId>
<version>3.7.1</version>
</dependency>
認証用のアプリケーションの作成
Box SDKからBoxの操作をするためには認証用アプリケーションを使って認証が必要です。
今回はBox SDKをJava上で認証させるので、JWT認証がふさわしいと思います。認証用アプリ―ケーションの作り方は公式に記載があります。
JWTを使用した設定 - Box開発者向けドキュメントポータル
公開/秘密キーペアを作成をするとjsonがダウンロードされるので保存しておきます。
作成後、管理者によるアプリの承認が必要なので注意してください。
APIへの接続
SDKと認証用アプリのjsonをJavaのクラスパスに保存したら以下のコードで接続できます。
Reader reader = new FileReader("jsonのパス");
BoxConfig config = BoxConfig.readFrom(reader);
BoxDeveloperEditionAPIConnection api = BoxDeveloperEditionAPIConnection.getAppEnterpriseConnection(config);
ファイルアップロード
任意のフォルダにファイルをアップロードしてみます。
BoxFolder folder = new BoxFolder(api, "フォルダID");
File file = new File("test.txt");
FileInputStream stream = new FileInputStream(file);
BoxFile.Info newFileInfo = folder.uploadFile(stream, "アップロードファイル名");
- フォルダIDはBoxをブラウザで開いて目的のフォルダを開いたときのURLで
https://app.box.com/folder/XXXXXXXXXXX
のXXXXXXXXXXX
の部分です。