1
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

AWS EC2(AMI)とBoxを連携する

Posted at

まえおき

LinuxサーバからBoxへファイル転送をする必要がでてきたため、BoxAPIを使ってファイルをアップロードする方法を調べました。

OAuth2の認証方法がわかればあとは簡単でしたが、認証部分で若干わかりずらかったので備忘録として記載です。

調べたこと

連携手段

Boxは企業向けクラウドストレージサービスなので、連携方法は色々あるようで、

・Windows/MacからデスクトップアプリケーションでSyncする
・REST API経由でデータをやり取りする
・LinuxからコマンドラインでSyncさせる

などありましたが、今回はBoxの理解をしたかったのとEC2側のストレージの枯渇が心配だったのでBoxのAPIを使うことにしました。
(ホントはrclone使ってsyncするのがよさそう)

以下手順です。

認証

Boxではいくつかの認証方法が用意されていて、AccessTokenを利用した方法を選択してます。
管理者権限があるなら全権限があるTokenも発行できる気がするのでそちらの方が楽かも。
(↑まだやってない)

やったこと

1. 連携用のアプリケーションを発行する

BOXへログインし開発者コンソールからアプリケーションを発行する。
認証方法は「標準OAuth 2.0 (ユーザー認証)」を選択。
https://[会社名など].app.box.com/developers/console

2. 設定からリダイレクト先を指定する

発行したアプリの「Configuration」の「OAuth 2.0リダイレクトURI」に以下を設定

  http://0.0.0.0

3. ブラウザで以下を叩くと認証画面が出てくるので認証する

https://account.box.com/api/oauth2/authorize?response_type=code&client_id=[client_id]&state=security_token=[client_secret]

4. 認証用コードを取得する

上記で認証すると「0.0.0.0」にリダイレクトして失敗するが、URLのcodeに認証コードがついてるのでコピー。

http://0.0.0.0/?state=security_token%3D[client_secret]&code=[auth_code]

5. Curlなどでアクセストークンとリフレッシュトークンを発行する

上記の「auth_code」を使ってcurlやPOSTMANで実行するとAPI実行に必要なアクセストークンとリフレッシュトークンがjsonで取得できます

curl https://api.box.com/oauth2/token \
-H "Content-Type: application/x-www-form-urlencoded" \
-d 'grant_type=authorization_code&code=[auth_code]&client_id=[client_id]&client_secret=[client_secret]' \
-X POST

6. APIが通るか確認する

あとはリファレンス通りにCurlを叩くとBoxの情報を取れます。

curl https://api.box.com/2.0/folders/[folder_id] \
-H "Authorization: Bearer [access_token]"

所感

  1. 毎度のことだが英語のドキュメント大事。

  2. 認証さえ理解できればそのほかはシンプルだったが、アクセストークンが1時間で無効になることと、リフレッシュトークンが60日で無効になるので、多少プログラム側で工夫が必要そうです。
    (管理者権限でAPI発行すれば良さそう)

参考

Box Auth
https://developer.box.com/v2.0/docs/oauth-20

Box API リファレンス:
https://developer.box.com/v2.0/reference

Access/Refresh Token の取得方法
https://www.youtube.com/watch?v=ZsQFXlMWM-E

1
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?