Top Banner
DataSpider ServistaBoxに接続してみた Lightning Talk @ dstnHUB, Feb 2015 株式会社アプレッソ 開発部 開発1G 陳映融
29

2015年2月26日 dsthHUB LT資料『DataSpider ServistaでBoxに接続してみた』

Jul 18, 2015

Download

Software

dstn
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: 2015年2月26日 dsthHUB LT資料『DataSpider ServistaでBoxに接続してみた』

DataSpider ServistaでBoxに接続してみた

Lightning Talk @ dstnHUB, Feb 2015

株式会社アプレッソ開発部 開発1G 陳映融

Page 2: 2015年2月26日 dsthHUB LT資料『DataSpider ServistaでBoxに接続してみた』

簡単な自己紹介

• 2014年1月 アプレッソに入社(あっという間に一年経った…)

• 台湾出身(寒いのは苦手…)

• 日本語でおk(でもネタ系の言葉は微妙かも…)

2

Page 3: 2015年2月26日 dsthHUB LT資料『DataSpider ServistaでBoxに接続してみた』

Boxについて

Page 4: 2015年2月26日 dsthHUB LT資料『DataSpider ServistaでBoxに接続してみた』

Boxって?

• Box – https://www.box.com/

• エンタープライズ向けのクラウドストレージ

– 個人向けのプランもある

• 海外ではかなりのシェアを占めている

– 日本ではまだ認知度が低め…

4

Page 5: 2015年2月26日 dsthHUB LT資料『DataSpider ServistaでBoxに接続してみた』

Boxを使用するには

• 公式サイト・アプリ

• 開発者向けのREST API

– Box Content API https://developers.box.com/docs/

• ストレージのコンテンツへのフルアクセスを提供

• 他のサービス・アプリのバックエンドとしての使用も可能

– Box View API https://developers.box.com/view/

• ドキュメントをHTML5で表示する機能を提供

• 限定されたコンテンツ管理機能もある

5

Page 6: 2015年2月26日 dsthHUB LT資料『DataSpider ServistaでBoxに接続してみた』

BoxのAPI認証と権限

• Content API

– OAuth 2.0による認証• クライアントID/シークレットはアプリごとで付与される

• アクセス権限はスコープの設定で制御

• View API

– API Keyによる認証• API Keyはアプリごとで付与される

• アクセス権限は該当アプリで作成したリソースのみ

6

Page 7: 2015年2月26日 dsthHUB LT資料『DataSpider ServistaでBoxに接続してみた』

• アプリケーション設定画面 https://app.box.com/developers/services

– 右メニューの「Boxアプリケーションの作成」を押下

APIを使用するための準備 1

7

※作成済みのアプリケーションを削除する手段がないので、作りすぎにご注意を。

Page 8: 2015年2月26日 dsthHUB LT資料『DataSpider ServistaでBoxに接続してみた』

– 使用するAPIを選択

APIを使用するための準備 2

8

※アプリケーションの使用するAPI

を選択後、二度と変更できないので、間違えないようにご注意ください。

Page 9: 2015年2月26日 dsthHUB LT資料『DataSpider ServistaでBoxに接続してみた』

View APIに接続してみる

Page 10: 2015年2月26日 dsthHUB LT資料『DataSpider ServistaでBoxに接続してみた』

View API

• REST API

– DataSpiderのRESTアダプタを使えば大丈夫

• API Keyによる認証

– アプリケーションを登録すれば発行してくれる• アプリケーション設定画面に表示される

– アクセス対象リソースはView API専用• View APIで作成したリソースのみアクセス可能

• BoxのWeb UIからこれらのリソースにアクセスできない

• Boxアカウント容量として計上されない

10

Page 11: 2015年2月26日 dsthHUB LT資料『DataSpider ServistaでBoxに接続してみた』

接続してみる 1

• シナリオ

1. 公開URLでファイルアップロード• http://dataspider.appresso.com/documents/dss_catalogue.pdf

2. ファイルをローカルにダウンロード• /tmp/catalogue.pdf

11

Page 12: 2015年2月26日 dsthHUB LT資料『DataSpider ServistaでBoxに接続してみた』

接続してみる 2

• シナリオ

1. ローカルファイルをアップロード• /data/view_demo2/DS本チラシ.pdf

2. オンライン表示用URL取得

3. URLをブラウザで表示

12

※表示URL取得できるようになるまで待つ

Page 13: 2015年2月26日 dsthHUB LT資料『DataSpider ServistaでBoxに接続してみた』

Content APIに接続してみる

Page 14: 2015年2月26日 dsthHUB LT資料『DataSpider ServistaでBoxに接続してみた』

Content API

• REST API

– DataSpiderのRESTアダプタを使えば大丈夫

• OAuth 2による認証

– OAuth 2の仕組みは?• 去年のLT@dstnHUBで説明したので割愛

• 詳しくはウェブで!(dstnサイトで検索)

– DataSpiderにOAuth 2認証機能はないけど?⇒スクリプトの組み合わせで実現できる!

– アクセス対象リソースはBoxのWeb UIと同じ

14

Page 15: 2015年2月26日 dsthHUB LT資料『DataSpider ServistaでBoxに接続してみた』

BoxのOAuth 2認証実装

• 認可コード・トークンの有効期間

– 認可コード:30秒

– リフレッシュトークン:60日、または初回使用時まで

• 認可コード要求パラメータ

– state

• 指定必須

– redirect_uri

• ローカルホストは開発フェーズでしか使用できない

• ポートとパスは制限なし

15

Page 16: 2015年2月26日 dsthHUB LT資料『DataSpider ServistaでBoxに接続してみた』

• 認可コード待ち受け

OAuth 2認証スクリプト

16

一時ファイルとして保存

Page 17: 2015年2月26日 dsthHUB LT資料『DataSpider ServistaでBoxに接続してみた』

OAuth 2認証スクリプト

• アクセストークン準備

17

認可コード一時ファイルによる連携

Page 18: 2015年2月26日 dsthHUB LT資料『DataSpider ServistaでBoxに接続してみた』

OAuth 2認証スクリプト

18

トークンなし:初回認証リフレッシュトークン期限切れ:再認証

Page 19: 2015年2月26日 dsthHUB LT資料『DataSpider ServistaでBoxに接続してみた』

OAuth 2認証スクリプト

19

アクセストークン期限切れ:アクセストークン再発行

Page 20: 2015年2月26日 dsthHUB LT資料『DataSpider ServistaでBoxに接続してみた』

OAuth 2認証スクリプト

20

トークン有効期間内:保存済みのトークンを使用

Page 21: 2015年2月26日 dsthHUB LT資料『DataSpider ServistaでBoxに接続してみた』

• シナリオ

1. フォルダを作成• [Box] /Uploaded, /Downloaded

2. ローカルファイルをアップロード• [ローカル] /data/content_demo1/* [Box] /Uploaded

接続してみる 1

21

Page 22: 2015年2月26日 dsthHUB LT資料『DataSpider ServistaでBoxに接続してみた』

• シナリオ

1. 検索(オンライン)でヒットした対象をダウンロード• [Box] name=dss_* [ローカル] /tmp/*

2. ダウンロード済みのファイルを特定フォルダに移動• [Box] /Downloaded

接続してみる 2

22

Page 23: 2015年2月26日 dsthHUB LT資料『DataSpider ServistaでBoxに接続してみた』

• シナリオ

1. 検索(キャッシュ)でヒットした対象をダウンロード• [Box] name=dss_* [ローカル] /tmp/*

2. ダウンロード済みのファイルを特定フォルダに移動• [Box] /Downloaded

接続してみる 2’

23

Page 24: 2015年2月26日 dsthHUB LT資料『DataSpider ServistaでBoxに接続してみた』

まとめ

Page 25: 2015年2月26日 dsthHUB LT資料『DataSpider ServistaでBoxに接続してみた』

Boxに接続にあたって

• APIのドキュメントは詳しくて作りやすい

– リクエスト/レスポンスのJSONサンプルはありがたい

• 一部処理の事前状態が整えるまで時間がかかる

– View APIの表示用リンク作成• リモートの状態を仮定せずに事前にチェックするべき

– Content APIの検索処理• フォルダもファイルも反映が遅い

• リストした結果をローカルでキャッシュするべき

25

Page 26: 2015年2月26日 dsthHUB LT資料『DataSpider ServistaでBoxに接続してみた』

DataSpiderで開発するにあたって

• RESTアダプタの秘める可能性

– RESTfulなAPIがあればどんなサービスにもつながる

• 認可コードの取得方法

– 開発フェーズはHTTPトリガーで簡単に取得できる

– 運用フェーズは工夫次第1. 受付用ウェブサービスを別途用意して

⇒ DataSpider@クラウド、独立ウェブサーバ、...

2. DataSpiderサーバで受付用ウェブサービスと連携する⇒ RESTアダプタ、Thunderbus、…

26

Page 27: 2015年2月26日 dsthHUB LT資料『DataSpider ServistaでBoxに接続してみた』

【おまけ】

Page 28: 2015年2月26日 dsthHUB LT資料『DataSpider ServistaでBoxに接続してみた』

全件削除処理

• View API

• Content API

28

Page 29: 2015年2月26日 dsthHUB LT資料『DataSpider ServistaでBoxに接続してみた』

ユティリティ

• ファイルハッシュ計算

FCIV: File Checksum Integrity Verifier (by Microsoft)

http://www.microsoft.com/en-us/download/details.aspx?id=11533

29