概要
Dropboxコネクタは、Dropboxのクラウドストレージからファイルを取得して Fess のインデックスに登録する機能を提供します。
この機能には fess-ds-dropbox プラグインが必要です。
対応サービス
Dropbox(ファイルストレージ)
Dropbox Paper(ドキュメント)
前提条件
プラグインのインストールが必要です
Dropbox開発者アカウントとアプリケーションの作成が必要です
アクセストークンの取得が必要です
プラグインのインストール
管理画面の「システム」→「プラグイン」からインストールします:
Maven Centralから
fess-ds-dropbox-X.X.X.jarをダウンロードプラグイン管理画面からアップロードしてインストール
Fess を再起動
または、詳細は プラグイン を参照してください。
設定方法
管理画面から「クローラー」→「データストア」→「新規作成」で設定します。
基本設定
| 項目 | 設定例 |
|---|---|
| 名前 | Company Dropbox |
| ハンドラ名 | DropboxDataStore または DropboxPaperDataStore |
| 有効 | オン |
パラメーター設定
パラメーター一覧
| パラメーター | 必須 | 説明 |
|---|---|---|
access_token | はい | Dropboxのアクセストークン(App Consoleで生成) |
basic_plan | いいえ | 個人アカウントの場合は true、チームアカウントの場合は false``(デフォルト: ``false) |
max_size | いいえ | インデックス対象の最大ファイルサイズ(バイト)(デフォルト: 10000000) |
number_of_threads | いいえ | クロールに使用するスレッド数(デフォルト: 1) |
ignore_folder | いいえ | フォルダメタデータをスキップするかどうか(デフォルト: true) |
ignore_error | いいえ | コンテンツ抽出時のエラーを無視するかどうか(デフォルト: true) |
supported_mimetypes | いいえ | 許可するMIMEタイプの正規表現パターン(カンマ区切り)(デフォルト: .*) |
include_pattern | いいえ | クロール対象に含めるURLパターン |
exclude_pattern | いいえ | クロール対象から除外するURLパターン |
default_permissions | いいえ | インデックスされたドキュメントのデフォルト権限(カンマ区切り) |
max_cached_content_size | いいえ | メモリにキャッシュするコンテンツの最大サイズ(バイト)。これを超えるコンテンツは一時ファイルに書き出されます(デフォルト: 1048576) |
readInterval | いいえ | 各レコードを処理する間に挿入する待機時間(ミリ秒)(デフォルト: 0) |
スクリプト設定
Dropboxファイルの場合
利用可能なフィールド:
| フィールド | 説明 |
|---|---|
file.url | ファイルのプレビューリンク |
file.contents | ファイルのテキストコンテンツ |
file.mimetype | ファイルのMIMEタイプ |
file.filetype | ファイルタイプ |
file.name | ファイル名 |
file.path_display | ファイルのパス |
file.size | ファイルサイズ(バイト) |
file.client_modified | クライアント側での最終更新日時 |
file.server_modified | サーバー側での最終更新日時 |
file.roles | ファイルのアクセス権限 |
file.id | DropboxファイルID |
file.path_lower | 小文字のファイルパス |
file.parent_shared_folder_id | 親共有フォルダID |
file.content_hash | コンテンツハッシュ |
file.rev | ファイルリビジョン |
Dropbox Paperの場合
利用可能なフィールド:
| フィールド | 説明 |
|---|---|
paper.url | Paperドキュメントのプレビューリンク |
paper.contents | Paperドキュメントのテキストコンテンツ |
paper.mimetype | MIMEタイプ |
paper.filetype | ファイルタイプ |
paper.title | Paperドキュメントのタイトル |
paper.owner | Paperドキュメントの所有者 |
paper.roles | ドキュメントのアクセス権限 |
paper.revision | Paperドキュメントのリビジョン |
Dropbox認証の設定
アカウント種別とアクセストークン
このコネクタは basic_plan パラメーターによって2つの動作モードを切り替えます。 作成すべきアプリとアクセストークンの種類が異なるため、最初に確認してください。
| モード | basic_plan | 説明 |
|---|---|---|
| チームアカウント(デフォルト) | false | Dropbox Business(チーム)アカウント向けです。チーム管理者の権限を持つアクセストークンが必要で、チームメンバーのファイルとチームフォルダを横断的にクロールします。 |
| 個人アカウント | true | 個人(非チーム)アカウント向けです。通常のスコープ付きアクセストークンを使用し、そのアカウント内のファイルを直接クロールします。 |
注釈
デフォルト(basic_plan=false)ではチーム管理用のAPI(チームメンバー一覧、メンバー単位のファイルアクセス、チームフォルダ)を使用するため、 Dropbox Businessアカウントとチーム管理者権限を持つトークンが必須です。個人アカウントを利用する場合は必ず basic_plan=true を設定してください。
アクセストークンの取得手順
1. Dropbox App Consoleでアプリを作成
https://www.dropbox.com/developers/apps にアクセス:
「Create app」をクリック
APIタイプで「Scoped access」を選択
アクセスタイプを選択(チームアカウントを横断的にクロールする場合は「Full Dropbox」を推奨)
アプリ名を入力して作成
2. 権限の設定
「Permissions」タブで必要な権限を選択:
ファイル・Paperのクロールに必要な権限:
files.metadata.read- ファイルのメタデータ読み取りfiles.content.read- ファイルおよびPaperドキュメントのコンテンツ読み取りsharing.read- 共有情報の読み取り
チームアカウント(``basic_plan=false``)で追加で必要な権限:
members.read- チームメンバー一覧の読み取りチームデータ/チームスペースへのアクセス権限(メンバー単位のファイルおよびチームフォルダのクロールに必要)
注釈
チームアカウントモードでは、チーム管理者として各メンバーやチームフォルダにアクセスします。 Permissionsタブで上記のチーム関連権限を有効にし、チーム管理者のトークンを生成してください。
3. アクセストークンの生成
「Settings」タブで:
「Generated access token」セクションまでスクロール
「Generate」ボタンをクリック
生成されたトークンをコピー(このトークンは一度しか表示されません)
警告
アクセストークンは安全に保管してください。このトークンがあれば Dropboxアカウントにアクセスできます。
4. トークンの設定
取得したトークンをパラメーターに設定:
個人アカウントの設定
個人アカウントでの利用
個人アカウント(チームアカウントではない)の場合、 basic_plan パラメーターを true に設定してください:
false``(デフォルト)の場合はチームアカウントとして動作し、チームメンバーやチームフォルダのファイルをクロールします。 ``true の場合は個人アカウントとして動作し、アカウント内のファイルを直接クロールします。
使用例
Dropboxファイル全体のクロール
パラメーター:
スクリプト:
Dropbox Paperドキュメントのクロール
パラメーター:
スクリプト:
権限付きクロール
パラメーター:
スクリプト(Dropboxファイル):
スクリプト(Dropbox Paper):
特定のファイルタイプのみクロール
特定のMIMEタイプのみをインデックス対象にするには、supported_mimetypes パラメーターに 許可するMIMEタイプの正規表現をカンマ区切りで指定します。
注釈
データストアのスクリプトは1行ごとに フィールド名=式 の独立した式として評価されます。 そのため、複数行にまたがる if ブロックで複数のフィールドをまとめて代入することはできません。 MIMEタイプによる絞り込みは、スクリプトではなく supported_mimetypes パラメーターで行ってください。
パラメーター(PDFとWordファイルのみ):
スクリプト:
トラブルシューティング
認証エラー
症状: Invalid access token または 401 Unauthorized
確認事項:
アクセストークンが正しくコピーされているか確認
トークンの有効期限が切れていないか確認(長期トークンを使用)
Dropbox App Consoleで必要な権限が付与されているか確認
アプリが無効化されていないか確認
ファイルが取得できない
症状: クロールは成功するがファイルが0件
確認事項:
アプリの「Access type」が適切か確認:
「Full Dropbox」: Dropbox全体にアクセス可能
「App folder」: 特定フォルダのみアクセス可能
必要な権限が付与されているか確認:
files.metadata.readfiles.content.readsharing.read
Dropboxアカウントにファイルが存在するか確認
APIレート制限エラー
症状: 429 Too Many Requests エラー
解決方法:
readIntervalを設定して各ファイルの処理間隔を空けるnumber_of_threadsを小さくして同時リクエスト数を減らすデータストアをフォルダ単位などで複数に分割し、スケジュールをずらして実行する
注釈
basic_plan はアカウントの種別(チーム/個人)を切り替えるパラメーターであり、 レート制限の調整には影響しません。アカウントに合わせて正しく設定してください。
Paperドキュメントが取得できない
症状: Paperドキュメントがクロールされない
確認事項:
ハンドラ名が
DropboxPaperDataStoreになっているか確認権限に
files.content.readが含まれているか確認Paperドキュメントが実際に存在するか確認
大量のファイルがある場合
症状: クロールに時間がかかる、またはタイムアウトする
解決方法:
データストアを複数に分割(フォルダ単位など)
スケジュール設定で負荷を分散
Basicプランの場合、APIレート制限に注意
権限とアクセス制御
Dropboxの共有権限を反映
Dropboxの共有設定をFessの権限に反映できます:
パラメーター:
スクリプト:
file.roles または paper.roles にDropboxの共有情報が含まれます。
参考情報
データストアコネクタの概要 - データストアコネクタ概要
Boxコネクタ - Boxコネクタ
Google Workspaceコネクタ - Google Workspaceコネクタ
データストアクロール - データストア設定ガイド