概要
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=sl.your-dropbox-token-here
basic_plan=false
パラメーター一覧
| パラメーター | 必須 | 説明 |
|---|---|---|
access_token | はい | Dropboxのアクセストークン(App Consoleで生成) |
basic_plan | いいえ | Basicプランの場合は true``(デフォルト: ``false) |
スクリプト設定
Dropboxファイルの場合
url=file.url
title=file.name
content=file.contents
mimetype=file.mimetype
filetype=file.filetype
filename=file.name
content_length=file.size
last_modified=file.client_modified
role=file.roles
利用可能なフィールド:
| フィールド | 説明 |
|---|---|
file.url | ファイルのプレビューリンク |
file.contents | ファイルのテキストコンテンツ |
file.mimetype | ファイルのMIMEタイプ |
file.filetype | ファイルタイプ |
file.name | ファイル名 |
file.path_display | ファイルのパス |
file.size | ファイルサイズ(バイト) |
file.client_modified | クライアント側での最終更新日時 |
file.server_modified | サーバー側での最終更新日時 |
file.roles | ファイルのアクセス権限 |
Dropbox Paperの場合
title=paper.title
content=paper.contents
url=paper.url
mimetype=paper.mimetype
filetype=paper.filetype
role=paper.roles
利用可能なフィールド:
| フィールド | 説明 |
|---|---|
paper.url | Paperドキュメントのプレビューリンク |
paper.contents | Paperドキュメントのテキストコンテンツ |
paper.mimetype | MIMEタイプ |
paper.filetype | ファイルタイプ |
paper.title | Paperドキュメントのタイトル |
paper.owner | Paperドキュメントの所有者 |
paper.roles | ドキュメントのアクセス権限 |
Dropbox認証の設定
アクセストークンの取得手順
1. Dropbox App Consoleでアプリを作成
https://www.dropbox.com/developers/apps にアクセス:
「Create app」をクリック
APIタイプで「Scoped access」を選択
アクセスタイプで「Full Dropbox」または「App folder」を選択
アプリ名を入力して作成
2. 権限の設定
「Permissions」タブで必要な権限を選択:
ファイルのクロールに必要な権限:
files.metadata.read- ファイルのメタデータ読み取りfiles.content.read- ファイルのコンテンツ読み取りsharing.read- 共有情報の読み取り
Paperのクロールに追加で必要な権限:
files.content.read- Paperドキュメントの読み取り
3. アクセストークンの生成
「Settings」タブで:
「Generated access token」セクションまでスクロール
「Generate」ボタンをクリック
生成されたトークンをコピー(このトークンは一度しか表示されません)
警告
アクセストークンは安全に保管してください。このトークンがあれば Dropboxアカウントにアクセスできます。
4. トークンの設定
取得したトークンをパラメーターに設定:
access_token=sl.your-dropbox-token-here
Basicプランの設定
Dropbox Basicプランの制限
Dropbox Basicプランの場合、API制限が異なります。 basic_plan パラメーターを true に設定してください:
access_token=sl.your-dropbox-token-here
basic_plan=true
これにより、APIレート制限に対応した処理が行われます。
使用例
Dropboxファイル全体のクロール
パラメーター:
access_token=sl.your-dropbox-token-here
basic_plan=false
スクリプト:
url=file.url
title=file.name
content=file.contents
mimetype=file.mimetype
filetype=file.filetype
filename=file.name
content_length=file.size
last_modified=file.client_modified
Dropbox Paperドキュメントのクロール
パラメーター:
access_token=sl.your-dropbox-token-here
basic_plan=false
スクリプト:
title=paper.title
content=paper.contents
url=paper.url
mimetype=paper.mimetype
filetype=paper.filetype
権限付きクロール
パラメーター:
access_token=sl.your-dropbox-token-here
basic_plan=false
default_permissions={role}admin
スクリプト(Dropboxファイル):
url=file.url
title=file.name
content=file.contents
mimetype=file.mimetype
filename=file.name
content_length=file.size
last_modified=file.client_modified
role=file.roles
スクリプト(Dropbox Paper):
title=paper.title
content=paper.contents
url=paper.url
mimetype=paper.mimetype
filetype=paper.filetype
role=paper.roles
特定のファイルタイプのみクロール
スクリプトでフィルタリング:
# PDFとWordファイルのみ
if (file.mimetype == "application/pdf" || file.mimetype == "application/vnd.openxmlformats-officedocument.wordprocessingml.document") {
url=file.url
title=file.name
content=file.contents
mimetype=file.mimetype
filename=file.name
last_modified=file.client_modified
}
トラブルシューティング
認証エラー
症状: 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 エラー
解決方法:
Basicプランの場合、
basic_plan=trueを設定クロール間隔を長くする
複数のアクセストークンを使用して負荷分散
Paperドキュメントが取得できない
症状: Paperドキュメントがクロールされない
確認事項:
ハンドラ名が
DropboxPaperDataStoreになっているか確認権限に
files.content.readが含まれているか確認Paperドキュメントが実際に存在するか確認
大量のファイルがある場合
症状: クロールに時間がかかる、またはタイムアウトする
解決方法:
データストアを複数に分割(フォルダ単位など)
スケジュール設定で負荷を分散
Basicプランの場合、APIレート制限に注意
権限とアクセス制御
Dropboxの共有権限を反映
Dropboxの共有設定をFessの権限に反映できます:
パラメーター:
access_token=sl.your-dropbox-token-here
default_permissions={role}dropbox-users
スクリプト:
url=file.url
title=file.name
content=file.contents
role=file.roles
mimetype=file.mimetype
filename=file.name
last_modified=file.client_modified
file.roles または paper.roles にDropboxの共有情報が含まれます。
参考情報
データストアコネクタの概要 - データストアコネクタ概要
Boxコネクタ - Boxコネクタ
Google Workspaceコネクタ - Google Workspaceコネクタ
データストアクロール - データストア設定ガイド