Übersicht
Der Box-Konnektor bietet die Funktionalität, Dateien aus dem Box.com-Cloud-Speicher abzurufen und im Fess-Index zu registrieren.
Für diese Funktion ist das Plugin fess-ds-box erforderlich.
Voraussetzungen
Die Installation des Plugins ist erforderlich
Ein Box-Entwicklerkonto und eine Anwendung müssen erstellt werden
JWT-Authentifizierung (JSON Web Token) oder OAuth 2.0-Authentifizierung muss konfiguriert werden
Plugin-Installation
Methode 1: JAR-Datei direkt platzieren
# Von Maven Central herunterladen
wget https://repo1.maven.org/maven2/org/codelibs/fess/fess-ds-box/X.X.X/fess-ds-box-X.X.X.jar
# Platzieren
cp fess-ds-box-X.X.X.jar $FESS_HOME/app/WEB-INF/lib/
# oder
cp fess-ds-box-X.X.X.jar /usr/share/fess/app/WEB-INF/lib/
Methode 2: Über die Administrationsoberfläche installieren
Öffnen Sie „System“ -> „Plugins“
Laden Sie die JAR-Datei hoch
Starten Sie Fess neu
Konfiguration
Konfigurieren Sie über die Administrationsoberfläche unter „Crawler“ -> „Datenspeicher“ -> „Neu erstellen“.
Grundeinstellungen
| Einstellung | Beispielwert |
|---|---|
| Name | Company Box Storage |
| Handler-Name | BoxDataStore |
| Aktiviert | Ein |
Parameter-Einstellungen
Beispiel für JWT-Authentifizierung (empfohlen):
client_id=hdf8a7sd9f8a7sdf9a87sdf98a7sd
client_secret=kMN7sd8f7a9sd8f7a9sd8f7a9sd8f
public_key_id=4tg5h6j7
private_key=<YOUR_PRIVATE_KEY>
passphrase=7ba8sd9f7a9sd8f7a9sd8f7a9sd8f
enterprise_id=1923456
Parameterliste
| Parameter | Erforderlich | Beschreibung |
|---|---|---|
client_id | Ja | Client-ID der Box-App |
client_secret | Ja | Client-Secret der Box-App |
public_key_id | Ja | ID des öffentlichen Schlüssels |
private_key | Ja | Privater Schlüssel (PEM-Format, Zeilenumbrüche als \n) |
passphrase | Ja | Passphrase des privaten Schlüssels |
enterprise_id | Ja | Box Enterprise-ID |
Skript-Einstellungen
url=file.url
title=file.name
content=file.contents
mimetype=file.mimetype
filetype=file.filetype
filename=file.name
content_length=file.size
created=file.created_at
last_modified=file.modified_at
Verfügbare Felder
| Feld | Beschreibung |
|---|---|
file.url | Link zum Öffnen der Datei im Browser |
file.contents | Textinhalt der Datei |
file.mimetype | MIME-Typ der Datei |
file.filetype | Dateityp |
file.name | Dateiname |
file.size | Dateigröße (Bytes) |
file.created_at | Erstellungsdatum |
file.modified_at | Datum der letzten Änderung |
Weitere Details finden Sie unter Box File Object.
Box-Authentifizierung konfigurieren
Schritte zur JWT-Authentifizierung
1. Anwendung in der Box Developer Console erstellen
Besuchen Sie https://app.box.com/developers/console:
Klicken Sie auf „Create New App“
Wählen Sie „Custom App“
Wählen Sie als Authentifizierungsmethode „Server Authentication (with JWT)“
Geben Sie den App-Namen ein und erstellen Sie sie
2. Anwendungskonfiguration
Konfigurieren Sie im Tab „Configuration“:
Application Scopes:
Aktivieren Sie „Read all files and folders stored in Box“
Advanced Features:
Klicken Sie auf „Generate a Public/Private Keypair“
Laden Sie die generierte JSON-Datei herunter (wichtig!)
App Access Level:
Wählen Sie „App + Enterprise Access“
3. Enterprise-Genehmigung
In der Box Admin-Konsole:
Öffnen Sie „Apps“ -> „Custom Apps“
Genehmigen Sie die erstellte App
4. Authentifizierungsinformationen abrufen
Rufen Sie die folgenden Informationen aus der heruntergeladenen JSON-Datei ab:
{
"boxAppSettings": {
"clientID": "hdf8a7sd...", // client_id
"clientSecret": "kMN7sd8f...", // client_secret
"appAuth": {
"publicKeyID": "4tg5h6j7", // public_key_id
"privateKey": "-----BEGIN...", // private_key
"passphrase": "7ba8sd9f..." // passphrase
}
},
"enterpriseID": "1923456" // enterprise_id
}
Format des privaten Schlüssels
private_key wird in eine Zeile umgewandelt, wobei Zeilenumbrüche durch \n ersetzt werden:
private_key=-----BEGIN ENCRYPTED PRIVATE KEY-----\nMIIFDjBABgk...=\n-----END ENCRYPTED PRIVATE KEY-----\n
Anwendungsbeispiele
Gesamten Box-Speicher des Unternehmens crawlen
Parameter:
client_id=abc123def456ghi789jkl012mno345
client_secret=pqr678stu901vwx234yz567abc890
public_key_id=a1b2c3d4
private_key=-----BEGIN ENCRYPTED PRIVATE KEY-----\nMIIFDjBABgkqhkiG9w0BBQ0wOzAbBgkqhkiG9w0BBQwwDgQI...=\n-----END ENCRYPTED PRIVATE KEY-----\n
passphrase=1a2b3c4d5e6f7g8h9i0j1k2l3m4n5o6p
enterprise_id=123456789
Skript:
url=file.url
title=file.name
content=file.contents
mimetype=file.mimetype
filetype=file.filetype
filename=file.name
content_length=file.size
created=file.created_at
last_modified=file.modified_at
Nur bestimmte Ordner crawlen
Im Skript kann auch nach Ordnerpfaden gefiltert werden:
url=file.url
title=file.name
content=file.contents
mimetype=file.mimetype
filetype=file.filetype
filename=file.name
content_length=file.size
created=file.created_at
last_modified=file.modified_at
Nur PDF-Dateien crawlen
Filterung nach MIME-Typ im Skript:
if (file.mimetype == "application/pdf") {
url=file.url
title=file.name
content=file.contents
mimetype=file.mimetype
filename=file.name
created=file.created_at
last_modified=file.modified_at
}
Fehlerbehebung
Authentifizierungsfehler
Symptom: Authentication failed oder Invalid grant
Zu überprüfen:
Überprüfen Sie, ob
client_idundclient_secretkorrekt sindÜberprüfen Sie, ob der private Schlüssel korrekt kopiert wurde (Zeilenumbrüche als
\n)Überprüfen Sie, ob die Passphrase korrekt ist
Überprüfen Sie, ob die App in der Box Admin-Konsole genehmigt wurde
Überprüfen Sie, ob die
enterprise_idkorrekt ist
Formatfehler beim privaten Schlüssel
Symptom: Invalid private key format
Lösung:
Überprüfen Sie, ob die Zeilenumbrüche im privaten Schlüssel korrekt in \n umgewandelt wurden:
# Korrektes Format
private_key=-----BEGIN ENCRYPTED PRIVATE KEY-----\nMIIFDj...\n-----END ENCRYPTED PRIVATE KEY-----\n
# Falsches Format (enthält tatsächliche Zeilenumbrüche)
private_key=-----BEGIN ENCRYPTED PRIVATE KEY-----
MIIFDj...
-----END ENCRYPTED PRIVATE KEY-----
Keine Dateien abrufbar
Symptom: Crawling erfolgreich, aber 0 Dateien
Zu überprüfen:
Überprüfen Sie, ob „Read all files and folders“ in den Application Scopes aktiviert ist
Überprüfen Sie, ob der App Access Level auf „App + Enterprise Access“ gesetzt ist
Überprüfen Sie, ob tatsächlich Dateien im Box-Speicher existieren
Überprüfen Sie, ob das Service-Konto die entsprechenden Berechtigungen hat
Bei großen Dateimengen
Symptom: Crawling dauert lange oder Timeout
Lösung:
Teilen Sie die Verarbeitung in den Datenspeicher-Einstellungen auf:
Passen Sie das Crawl-Intervall an
Teilen Sie in mehrere Datenspeicher auf (z.B. nach Ordner)
Verteilen Sie die Last über die Zeitplaneinstellungen
Berechtigungen und Zugriffskontrolle
Box-Dateiberechtigungen abbilden
Bemerkung
In der aktuellen Implementierung werden keine detaillierten Box-Berechtigungsinformationen abgerufen. Bei Bedarf können Sie das role-Feld verwenden, um die Zugriffskontrolle zu konfigurieren.
Standardberechtigungen festlegen:
# Parameter
default_permissions={role}box-users
Berechtigungen im Skript setzen:
url=file.url
title=file.name
content=file.contents
role=["box-users"]
mimetype=file.mimetype
filename=file.name
created=file.created_at
last_modified=file.modified_at
Weiterführende Informationen
Übersicht der Datenspeicher-Konnektoren - Übersicht der Datenspeicher-Konnektoren
Dropbox-Konnektor - Dropbox-Konnektor
Google Workspace-Konnektor - Google Workspace-Konnektor
Datenspeicher-Crawl - Leitfaden zur Datenspeicher-Konfiguration