Übersicht
Der Box-Konnektor bietet die Funktionalität, Dateien aus dem Box.com-Cloud-Speicher abzurufen und im Fess-Index zu registrieren.
Dieser Konnektor verbindet sich mit dem Unternehmen mittels JWT (Server Authentication) und crawlt rekursiv die Dateien, auf die jeder Benutzer im Unternehmen zugreifen kann, indem er den jeweiligen Benutzer impersoniert. Die zu crawlenden Benutzer können mit dem Parameter filter_term eingeschränkt werden.
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
Die Konfiguration der JWT-Authentifizierung (JSON Web Token) ist erforderlich
Plugin-Installation
Methode 1: JAR-Datei direkt platzieren
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:
Parameterliste
Authentifizierungsparameter (erforderlich)
Crawl-Parameter (optional)
| Parameter | Standardwert | Beschreibung |
|---|---|---|
max_size | 10000000 | Maximale Dateigröße für das Crawling (Bytes). Standard ist 10 MB. |
supported_mimetypes | .* | MIME-Typen für das Crawling (regulärer Ausdruck). Mehrere Werte können durch Komma getrennt angegeben werden. |
include_pattern | (keine) | URL-Muster, die in das Crawling eingeschlossen werden sollen |
exclude_pattern | (keine) | URL-Muster, die vom Crawling ausgeschlossen werden sollen |
number_of_threads | 1 | Anzahl der Threads für die Crawl-Verarbeitung |
ignore_folder | true | Gibt an, ob Ordner von der Indexierung ausgeschlossen werden sollen. In der aktuellen Implementierung werden Ordner selbst nicht indexiert (nur Dateien werden erfasst), daher hat dieser Parameter keine Auswirkung. |
ignore_error | true | Gibt an, ob die Verarbeitung bei einem Fehler fortgesetzt werden soll |
filter_term | (keine) | Filterbedingung zur Einschränkung der zu crawlenden Unternehmensbenutzer. Wenn nicht angegeben, werden alle Unternehmensbenutzer erfasst. |
fields | (alle Felder) | Angabe der Felder, die über die Box API abgerufen werden sollen |
Verbindungsparameter (optional)
| Parameter | Standardwert | Beschreibung |
|---|---|---|
base_url | https://app.box.com | Basis-URL zur Konstruktion der URL zum Öffnen einer Datei im Browser (file.url). Die vom Box SDK verwendeten API-Endpunkte werden dadurch nicht beeinflusst. |
max_retry_count | 10 | Maximale Anzahl von Wiederholungsversuchen für API-Aufrufe |
proxy_host | (keine) | Hostname des HTTP-Proxys |
proxy_port | (keine) | Portnummer des HTTP-Proxys |
refresh_token_interval | 3540 | Intervall für die Token-Aktualisierung (Sekunden). Standard ist 59 Minuten. |
Skript-Einstellungen
Verfügbare Felder
Hauptfelder
| 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 |
file.download_url | Direkter Box-Download-URL |
file.id | Box-Element-ID |
file.description | Dateibeschreibung |
file.extension | Dateiendung |
file.sha1 | SHA1-Hash der Datei |
file.path_collection | Liste der Ordnerpfade |
Metadatenfelder
| Feld | Beschreibung |
|---|---|
file.type | Elementtyp („file“ oder „folder“) |
file.file_version | Dateiversion-Informationen |
file.sequence_id | Sequenz-ID |
file.etag | ETag-Hash |
file.trashed_at | Datum der Verschiebung in den Papierkorb |
file.purged_at | Datum der endgültigen Löschung |
file.content_created_at | Erstellungsdatum des Inhalts |
file.content_modified_at | Änderungsdatum des Inhalts |
file.created_by | Informationen zum Ersteller |
file.modified_by | Informationen zum letzten Bearbeiter |
file.owned_by | Informationen zum Eigentümer |
file.shared_link | Freigegebene Link-Informationen |
file.parent | Informationen zum übergeordneten Ordner |
file.item_status | Elementstatus |
file.version_number | Versionsnummer |
file.comment_count | Anzahl der Kommentare |
file.permissions | Berechtigungsinformationen |
file.tags | Tag-Informationen |
file.lock | Sperrinformationen |
file.is_package | Paket-Flag |
file.is_watermark | Wasserzeichen-Flag |
file.collections | Sammlungsinformationen |
file.representations | Darstellungsformat-Informationen |
file.api | Box-Datei-API-Objekt (für den Abruf von Kollaborations- und Berechtigungsinformationen) |
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:
Format des privaten Schlüssels
private_key wird in eine Zeile umgewandelt, wobei Zeilenumbrüche durch \n ersetzt werden:
Anwendungsbeispiele
Gesamten Box-Speicher des Unternehmens crawlen
Parameter:
Skript:
Nur bestimmte Ordner crawlen
Mit dem Parameter include_pattern ist eine Filterung nach Ordnerpfaden möglich.
Parameter:
Skript:
Nur PDF-Dateien crawlen
Mit dem Parameter supported_mimetypes ist eine Filterung nach MIME-Typ möglich.
Parameter:
Skript:
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:
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)
Erhöhen Sie die Anzahl der Threads mit dem Parameter
number_of_threadsVerteilen Sie die Last über die Zeitplaneinstellungen
Berechtigungen und Zugriffskontrolle
Box-Kollaborationsberechtigungen abbilden
Über das BoxFileAPI-Objekt, das vom Feld file.api bereitgestellt wird, können Box-Kollaborationsinformationen auf Fess-Suchrollen abgebildet werden. file.api.collaborationRoles gibt eine Liste von Suchrollen zurück, die den Benutzern und Gruppen entsprechen, die auf die Datei zugreifen können.
Berechtigungen im Skript setzen:
Bemerkung
file.api.collaborationRoles ruft für jede Datei Kollaborationsinformationen ab, was die Anzahl der Box-API-Aufrufe erhöht und das Crawling verlangsamen kann.
Um allen Dateien eine feste Rolle zuzuweisen, geben Sie diese wie folgt an:
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