LoginSignup
3
0

More than 1 year has passed since last update.

DataSpiderでDropboxにつないでみた(ファイルダウンロード)

Last updated at Posted at 2022-12-02

はじめに

こんにちは!すぎもんです:grinning:

今回はタイトルの通り、DataSpiderでDropboxに繋いでみる検証をやってみました。
Dropboxは、世界的なシェアを持つクラウドストレージサービスの一つです。
オンライン上のデータを様々な媒体で共有できるDropboxというサービスは、ここ数年のパンデミックによるリモートワークの急速な普及にも大きな役割を果たしたことと思います。

今回は、Dropboxによってクラウド上に格納されたファイルを、DataSpiderからダウンロードしてみます!

今回やること

DataSpiderからDropboxに繋いで、Dropboxの特定のフォルダに格納されているファイルを、zip形式でダウンロードします。検証手順は、下記の通りです。

 ①Dropbox側のアプリの設定
 ②Dropbox内の連携ファイル準備
 ③DataSpiderの設定(ZIP形式のファイルのダウンロード)
 ④実行確認

以上です。早速やっていきます。

事前準備(Dropboxアプリの設定)

まずは、DropboxのAPIを利用するために必要なアプリケーションを作成します。
Dropboxのユーザーアカウントを作成して、下記にログインします。
(※今回は、無料アカウント使いました)
https://www.dropbox.com/developers/documentation

画面右上のアプリコンソールをクリックします。
image.png
Create Appをクリックします。
image.png
Create new app on the DBX Platformの画面で必要事項を入力して、CreateAppを押下します。DataSpiderからDropboxに接続できることの確認をしたいので、範囲の狭い「App Folder」を選択しました。

(参考)Dropbox for HTTP Developers Dropbox API v2 (API仕様)
https://www.dropbox.com/developers/documentation/http/documentation
image.png
アプリの設定をしていきます。まずは「Setting」タブの設定です。
「OAtuth2」に下記の通り設定します。
  ・Redirect URIsにhttp://localhost:7700/dataspider/oauth_2_0を追加
  ・Allow public clients(Implicit Grant & PKCE)はAllowを選択
  ・Generated access token はデフォルト

「App key」と「App secret」はDataSpiderの認証設定で使うのでメモします。

image.png
image.png

次に、「Permissions」タブの設定を適宜行います。
ファイルやフォルダ等それぞれに対する書き込み/読み取り権限を設定します。私は、全ての書き込み権限を付与しています。
image.png
変更すると下記のようになるので、Submitをclickして保存します。
image.png
以上で、Dropboxアプリの設定は完了です。

事前準備(Dropbox内の連携ファイル準備)

Dropboxにログインします。
https://www.dropbox.com/login

ログインすると下記の画面が表示されるので、「すべてのファイル」-「アプリ」の中から作成した「アプリ」を選び、配下に任意のフォルダとファイルを作成します。
image.png
私は、下記のように自分の作成したアプリ内にフォルダとファイルを作成しました。
  フォルダ名 : Dropbox/アプリ/Test01_CON01/test20220809
  ファイル名 : textfile.txt テキストファイル.txt
image.png
以上で、Dropbox内の連携用ファイルの準備は完了です。

DataSpiderの設定

新規でプロジェクトとスクリプトを作成します。
また、スクリプト内のロジックで使える「スクリプト変数」も作成します。

スクリプト変数は下記の通り作成します。値には、事前準備(Dropbox内の連携ファイル準備)で作成した任意のフォルダを指定してください。

  変数名 : フォルダ
  変数型 : 文字列
  値   : /Test01_CON01/test20220809

スクリプト変数「フォルダ」の "値" は、先頭にスラッシュ( / )を付与します。

次に、ツールパレットから「ネットワーク」-「REST」-「GET実行」のアイコンを、デザイナ上にドラッグ&ドロップして設定画面を開きます。
image.png

まず「必須設定」タブの設定です。

接続先のテキストボックスを選択して、追加を選択します。
この「接続先」は、RESTで接続する先のURLを設定することになります。「パス」の値は、「接続先」で設定したURLの後ろに付加され、最終的なendpointになります。

「URLの設定値」+「GET実行の必須設定のパス値」
=DropboxのAPI仕様(URL_STRUCTURE)となるよう設定する必要があります

DropboxのAPI「files の download_zip」を利用しています。(URL_STRUCTURE、EXAMPLE、PARAMETERSを参考にしました。)
https://www.dropbox.com/developers/documentation/http/documentation#files-download_zip

今回は以下のように設定しました。

  名前  : GET:download_zip
  接続先 : Dropbox content REST接続設定
 パス   : /2/files/download_zip
<接続先設定>
  URL   : https://content.dropboxapi.com

image.png

「接続テスト」を押下すると、入力されているURLがDataSpiderと通信ができるか、を確認することができます。OKであれば「接続先」が正しく設定されています。
image.png

DataSpiderの接続先設定は、上述のようにデザイナ上でもできますが、
「コントロールパネル」-「グローバルリソースの作成」からも設定できます。

次に、「レスポンス設定」タブの設定します。

 データ出力先 :ファイル
 ファイルパス :/data/dropbox01/${フォルダ}.zip

DataSpiderでは、設定値に変数を使うときに[${変数名}]と表記します。

image.png

次に「ヘッダ設定」タブの設定です。
DropboxのAPI仕様のEXAMPLEを確認すると、headerとして"Dropbox-API-Arg"を設定しています。これに倣って、PARAMETERSの例を参考に値を設定します。
フォルダのパスを記載する方式を採用して、「ヘッダ設定」に下記の通り設定します。

 名前 : Dropbox-API-Arg
  値 : {"path":"${フォルダ}"}
image.png

最後に、「認証設定」タブを設定します。
image.png
「追加」を押下します。image.png

<必須設定>
必須設定は、下記の通りです。DropboxのAPI仕様のAuthorizationを参考に設定します。
認可エンドポイントは「/oauth2/authorize」、トークンエンドポイントは「/oauth2/token」のAPIのURL_STRUCTUREの内容を記載します。
「/oauth2/authrize」でEXAMPLEの「Example: Auth URL for code flow with offline token access type」を参考にパラメータを設定します。

     名前       : 任意
 クライアントID      : {App key}
 クライアントシークレット : {App Secret}
 リダイレクトURI      : {redirect URI}
 認可エンドポイント    : https://www.dropbox.com/oauth2/authorize
 トークンエンドポイント  : https://api.dropboxapi.com/oauth2/token
image.png

<詳細設定>
詳細設定は、下記の通りです。、「response_type」は、認可コードを取得する必要があるので"code"を指定、「token_access_type」はrefresh_tokenを含む形式としたいので"offline"を指定します。
  キー : response_type    値  : code
  キー : token_access_type  値  : offline
image.png

設定完了後、「必須設定」タブ内の「トークンを発行する」をクリックします。
認可コードの設定ウィンドウが出てくるので、「認可コード取得」をクリックします。

image.png

DropboxのAPIリクエストの承認画面で、「このアプリをリンクする前に」の注意画面が表示された場合は、[続行する]をクリックし、
image.png
作成したアプリに権限を与える旨の画面が表示されるので、「許可」をクリックしてください。
image.png

画面に出力された「コード」をコピーし、
image.png
認可コード欄に張り付けて、OKをクリックします。
image.png
「トークンを取得しました」が表示されれば、リクエストの承認が成功です。
image.png

実行してみる

作成したget実行アイコンとstartアイコンをドラッグ&ドロップし、プロセスフローを作成します。同様に、getアイコンをendアイコンにドラッグ&ドロップして完成です。

完成スクリプトはこちらです。
image.png

DataSpiderのdataディレクトリの直下に「dropbox01」というディレクトリを作成します。
image.png

デバック実行してみます。
image.png

正しく実行されると、「/data/dropbox01」内に、Dropboxで作成したファイル名のZIPファイルが作成されています。
image.png

ZIPファイルを解凍して、事前に格納したファイルがあれば成功です。
image.png

冒頭Dropbox内に準備したファイルと、同様のファイルが確認できました。成功です!
  ファイル名 : textfile.txt, テキストファイル.txt

最後に

今回は、「DataSpiderからDropboxに作成したファイルをダウンロードしてみた」でした。いかがでしたでしょうか?比較的簡単に連携ができたのではないかと思います。
Dropboxの他のAPIを使ってみてもいいですし、今回のDropboxからダウンロードしたファイルを、後続処理のトリガーとしてみるなどして、DataSpiderで色々と作ってみていただけたらと思います。

今回は、基本的な処理として「GET実行」をしてみました。DataSpiderでAgileWorksにつないでみた(2/2)(DataSpider設定編)の記事では、「POST実行」を試しています。是非こちらもご一読いただき、皆さんの何かのご参考になれば幸いです。

このブログでは、今後も、実際にやってみた検証や、日々の業務で学んだり思いついた開発Tipsなどを投稿していきたいと思います!

お読みいただきありがとうございました。それでは、また!

3
0
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
3
0