はじめに
本記事は、ArcESBでのGoogle Drive Connectorの利用方法についてご紹介します。
- はじめに
- ArcESB とは
- Google Drive Connector とは
- Google Driveへの接続
- Google Driveからファイルを受信
- Google Driveにファイルを送信
- Tips
ArcESB とは
ArccESBは、FTP / SFTP / SCP / WebDAVといった従来のファイル転送プロトコルに加えて、数多くのクラウドストレージやSaaSアプリケーションとの連携をサポートしているクラウドネイティブ・ハイブリッドクラウド時代のエンタープライズファイル転送プラットフォームです。
Google Drive Connector とは
ArcESBからGoogle Driveへの接続にはMFTカテゴリ内のGoogle Drive Connectorを利用します。本コネクタを使うとGoogle Drive内のファイルのダウンロード(受信)、および、Google Driveへのファイルのアップロード(送信)が可能となります。
Google Drive Connectorの使い方についてはArcESBの製品マニュアルもあわせてご覧ください。
cdn.arcesb.com ※日本語ヘルプへ差し替え予定
Google Driveへの接続
Google DriveへはOAuthベースのアカウント認証となります。そのため、事前にGoogle Drive側でAPIおよびアクセス時の認可に必要なクライアントID、および、クライアントシークレットの取得が必要となります。
Google Developer Consoleへのログイン
以下のサイトにGoogleアカウントでログインします。
無償利用枠がありますが、トライアル期間が過ぎるとアカウントのアップグレードが必要になります。
プロジェクトの作成
APIs & ServiceのDashboard画面から「CREATE PROJECT」ボタンからプロジェクトを作成できます。
作成後は、左上のプロジェクト選択メニューで作成したプロジェクトに切り替えてください。本画面例では「ArcESB」というプロジェクトを作成しました。
Google Drive APIの有効化
APIs & ServiceのLibraryを開き、Searchから「Google Drive」で検索してGoogle Drive APIを選択します。
Google Drive APIをENABLE(有効)にしてください。
OAuth consent Screenの作成
APIs & ServiceのOAuth consent screenを開きます。User Typeに組織内(Internal)か外部(External)のどちらかを選択(本例では、Internalを選択)して作成します。
Application nameに任意の名称(本例では、ArcESB)を付与して、Scopes for Google APIsにてGoogle Drive APIの各Scopeを付与して保存します。
クライアントID、および、クライアントシークレットの取得
APIs & ServiceのCredentialsを開きます。「+Create credentials」から「OAuth Client ID」を選択します。
Application typeからWeb applicationを選択します。Nameは任意の名称を付与してください(本例では、ArcESB)。Authorized redirect URIsにはArcESBが起動しているマシンのURL「http://mydomain.com:8001/src/oauthCallback.rst」をセットしてください(本例では、http://localhost:8001/src/oauthCallback.rst )
OAuth client createdのダイアログにクライアントID(Your Clinet ID)、および、クライアントシークレット(Your Client Secret)が表示されます。後の手順で必要となりますので手元に控えてください。
ArcESBからの接続
ArcESBの「MFT」カテゴリ内の「Google Drive Connector」をフローペインにドラッグ&ドロップ操作で配置します。コネクタ名が求められるので任意の名称(本例ではGoogleDriveGet)を付与してください。
右側にペインに配置したコネクタのプロパティエリアが表示されます。上記手順で取得したクライアントID(OAuth ClientId)とクライアントシークレット(OAuthClientSecret)をセットして接続ボタンをクリックしてください。ブラウザの別ウィンドウが起動してGoogleアカウントでのサインインが求められます。
上記(OAuth consent Screen)で設定したScopeで許可が求められます。許可して次に進みます。
緑のSuccess!とのメッセージが表示されれば、OAuthの認可フローが成功してArcESBからGoogleDriveへの接続は完了します。
コネクタの接続設定を保存するため「変更を保存」ボタンをクリックしてください。
Google Driveからファイルを受信
本手順では、Google Drive内のファイルをArcESBマシンのローカルディレクトリに受信(ダウンロード)してみます。
Google Drive側のディレクトリの指定
上記手順で作成したコネクタ(本例では、GoogleDriveGet)の「設定 > 受信」内の「リモートフォルダ」にGoogleDriveから受信(取得)したいファイルが格納されているディレクトリを指定します(本例では「/ArcESB受信用」)。ルートディレクトリの指定は「/」(スラッシュ)となります。また、GoogleDrive側のファイルが更新されたて再度受信時にファイル名が重複した時の対応として「ローカルファイルを上書き」を「オン」にします。ちなみに「オフ」のままだとファイル名の後ろに連番の付与されたファイル名で取得されます。ここまで設定したら右上の「変更を保存」でコネクタを保存します。
受信間隔の指定
「オートメーション」タブを開き、オートメーション設定内の「受信」を「オン」にしてReceive Intervalを「Minute」、分を「1」にセットします。これで1分間隔でGoogleDriveの該当ディレクトリを検索するようになります。ここまで設定したら右上の「変更を保存」でコネクタを保存します。
受信するローカルディレクトリの確認
受信するディレクトリは、「Advanced」タブで確認できます。「アウトプットフォルダ(受信)」で指定されているディレクトリが受信するディレクトリになります(本例では、C:\Program Files\ArcESB\data\GoogleDriveGet\Receive )。
受信の確認
Google Drive側のリモートフォルダとして指定したディレクトリ(本例では、MyDrive > ArcESB受信用)にファイルをアップロードしてみます。
ArcESBに戻り「アウトプット」タブを開きます。GoogleDriveにアップロードしたファイルが受信されていることが確認できます。なお、受信の間隔は上記のオートメーションタブで設定した間隔(本手順の例では1分)で行われます。
また、本画面の「受信」ボタンをクリックすることで任意のタイミングで受信することもできます。ただし、差分で受信するので、前回受信時から変更が無い場合は、下記メッセージ(The connection was successful, but no matching files were detected.)のように接続は成功したがファイルが無い旨のメッセージが表示されます。
それでは、実際にGoogleDriveからArcESBが受信したファイルをみてみます。「Advanced」タブの「アウトプットフォルダ(受信)」で指定されているディレクトリパス(本例では、C:\Program Files\ArcESB\data\GoogleDriveGet\Receive )を実際にエクスプローラやlsコマンドでみてみましょう。GoogleDriveのファイルがArcESBの受信フォルダに格納されていれば受信は成功です。
Google Driveにファイルを送信
本手順では、ArcESBマシンのローカルディレクトリ内のファイルをGoogle Driveに送信(アップロード)してみます。
Google Drive側のディレクトリの指定
上記手順で作成したコネクタ(本例では、GoogleDriveGet)の「設定 > 送信」内の「リモートフォルダ」にGoogleDriveに送信(アップロード)したいファイルが格納されているディレクトリを指定します(本例では「/ArcESB送信用」)。ルートディレクトリの指定は「/」(スラッシュ)となります。また、ローカルディレクトリのファイルが更新されたて再度送信時にファイル名が重複した時の対応として「リモートフォルダを上書き」を「オン」にします。ちなみに「オフ」のままだとファイル名の後ろに連番の付与されたファイル名で送信されます。ここまで設定したら右上の「変更を保存」でコネクタを保存します。
送信間隔の指定
ローカルディレクトリからGoogle Driveへのファイルの送信は、ローカルディレクトリにファイルを配置したタイミングで自動で行われます。送信エラーが発生した場合の再試行間隔と回数を「オートメーション」タブから設定できます。デフォルトでは、再試行間隔:60、最大試行回数が5とセットされています。変更した場合は、右上の「変更を保存」でコネクタを保存します。
送信するローカルディレクトリの確認
ファイルを送信するディレクトリは、「Advanced」タブで確認できます。「インプットフォルダ(送信)」で指定されているディレクトリが送信するディレクトリになります(本例では、C:\Program Files\ArcESB\data\GoogleDriveGet\Send )。なお、GoogleDriveへの送信が完了したファイルは「処理済みフォルダ(Sent)」で指定されているディレクトリに格納されます。
送信の確認
上記「Advanced」タブ「インプットフォルダ(送信)」で指定されているディレクトリにファイルを配置してみます。送信が完了するとファイルが消えます。
ArcESBに戻り「インプット」タブを開きます。上記ディレクトリに配置したファイルが送信されていることが確認できます。
それでは、実際にArcESBからGoogleDriveに送信されたファイルをみてみます。Google Driveの送信用フォルダとして指定したフォルダ(本例では「/ArcESB送信用」)を開きます。なお、フォルダが無い場合はアップロード時にフォルダも作成されます。ArcESBからGoogleDriveに送信したファイルが格納されていれば送信は成功です。
Tips
共有ドライブ にアクセス
Google DriveにはログインユーザのDriveであるMyDriveの他に、組織で共有して利用できる共有ドライブ(Shared Drive)があります。共有ドライブの詳細はGoogle社のヘルプをご覧ください。
ArcESBでは、共有ドライブ内のファイルへのアクセスも可能です。「設定」タブ内の「送信[スコープ]」、または、「受信[スコープ]」を「Shared Drives」にセットしてその下の「Shared Drive」に共有ドライブ名を指定します。
複数のディレクトリからファイルを受信
受信(GoogleDrive->ArcESB)の場合、リモートフォルダにカンマ区切りで複数のGoogleDriveのディレクトリを指定することが可能です。
送信(ArcESB->GoogleDrive)の場合は、ローカルディレクトリの指定は1つのみとなります。
サブディレクトリ内ファイルの再帰的な転送
受信(GoogleDrive->ArcESB)の場合は、デフォルト設定ではリモートフォルダに指定したGoogleDriveのディレクトリ直下のファイルのみ転送されます。これを再帰的にリモートフォルダ配下の全てのファイルを受信するには以下の設定を行います。「Advanced」タブを開き、「その他の設定」内の「サブディレクトリを再帰」を「True」に変更します。
送信(ArcESB->GoogleDrive)の場合には、デフォルトでディレクトリ配下の全てのファイルがディレクトリ構造を保ったままGoogleDriveに送信されます。
特定ファイルのみ送受信
ある拡張子のみ、または、あるファイル名のみを送受信の対象とすることが可能です。
受信(GoogleDrive->ArcESB)の場合は、「設定」タブの「受信」内の「ファイルマスク」で指定できます。「*.jpg」とアスタリスクでワイルドカード指定が可能で本例だと拡張子です。ただし、本設定項目では複数の指定ができません。
複数の指定、例えば、pptxとjpg二つの拡張子のファイルを送受信対象としたい場合は「Advanced」タブ内の下の方にある「受信フィルタ」「送信フィルタ」に「.pptx, .jpg」 のようにカンマ区切りで指定ください。
GoogleDocs, GoogleSheets, GoogleSlideを形式を変更して受信
Google Drive内のGoogleDocs, GoogleSheets, GoogleSlideをローカルディレクトリに受信する際に、指定したフォーマットでの受信が可能です。デフォルトでは、以下のフォーマットに変換されて受信されます。これらの受信フォーマットをPDFなど他のフォーマットに変更することが可能です。
元フォーマット | デフォルトでの受信フォーマット |
---|---|
GoogleDocs | Microsoft Word(.docx) |
GoogleSheets | Microsoft Excel(.xlsx) |
GoogleSlide | Microsoft PowerPoint(.pptx) |
「Advanced」タブ内の「ドキュメントのエクスポート形式」「シートのエクスポート形式」「スライドのエクスポート形式」にて任意の形式を指定してください。
再受信時の差分チェック
受信(GoogleDrive -> ArcESB)した元のファイルに変更がなければ、次の受信インターバル設定の再実行時には再び受信しない設定になっています。ArcESBはこの差分チェックの仕組みを内部的なキャッシュ用DBにファイル名とサイズおよび更新日時を記録しておくことで実現しています。キャッシュ用DBの設定は「Advanced」タブのCachingにてどの項目(Size, TimeStamp)で差分チェックを行うか、そして、「Reset」ボタンからキャッシュをクリアすることができます。
受信後ファイルの削除
受信(GoogleDrive->ArcESB)したファイルについて、元のGoogleDriveから削除することが可能です。「設定」タブの「受信」内の「ファイルを削除(受信後)」をオンにしてください。