Apercu
Le connecteur Google Workspace fournit la fonctionnalite permettant de recuperer les fichiers depuis Google Drive (anciennement G Suite) et de les enregistrer dans l’index Fess.
Cette fonctionnalite necessite le plugin fess-ds-gsuite.
Services pris en charge
Google Drive (Mon Drive, Drive partages)
Google Docs, Sheets, Slides, Forms, etc.
Prerequis
L’installation du plugin est requise
La creation d’un projet Google Cloud Platform est necessaire
La creation d’un compte de service et l’obtention des identifiants sont necessaires
La configuration de la delegation a l’echelle du domaine Google Workspace est necessaire
Installation du plugin
Methode 1 : Placement direct du fichier JAR
# Telecharger depuis Maven Central
wget https://repo1.maven.org/maven2/org/codelibs/fess/fess-ds-gsuite/X.X.X/fess-ds-gsuite-X.X.X.jar
# Placement
cp fess-ds-gsuite-X.X.X.jar $FESS_HOME/app/WEB-INF/lib/
# ou
cp fess-ds-gsuite-X.X.X.jar /usr/share/fess/app/WEB-INF/lib/
Methode 2 : Installation depuis l’interface d’administration
Ouvrir « Systeme » -> « Plugins »
Telecharger le fichier JAR
Redemarrer Fess
Configuration
Configurez depuis l’interface d’administration via « Crawler » -> « Data Store » -> « Nouveau ».
Configuration de base
| Element | Exemple |
|---|---|
| Nom | Company Google Drive |
| Nom du gestionnaire | GSuiteDataStore |
| Active | Oui |
Configuration des parametres
private_key=-----BEGIN PRIVATE KEY-----\nMIIEvgIBADANBgkqhkiG9w0BAQE...\n-----END PRIVATE KEY-----\n
private_key_id=46812a3b4c5d6e7f8g9h0i1j2k3l4m5n6o7p8q9r
client_email=fess-crawler@your-project.iam.gserviceaccount.com
Liste des parametres
| Parametre | Requis | Description |
|---|---|---|
private_key | Oui | Cle privee du compte de service (format PEM, sauts de ligne en \n) |
private_key_id | Oui | ID de la cle privee |
client_email | Oui | Adresse email du compte de service |
Configuration du script
title=file.name
content=file.description + "\n" + file.contents
mimetype=file.mimetype
created=file.created_time
last_modified=file.modified_time
url=file.url
thumbnail=file.thumbnail_link
content_length=file.size
filetype=file.filetype
role=file.roles
filename=file.name
Champs disponibles
| Champ | Description |
|---|---|
file.name | Nom du fichier |
file.description | Description du fichier |
file.contents | Contenu textuel du fichier |
file.mimetype | Type MIME du fichier |
file.filetype | Type de fichier |
file.created_time | Date de creation |
file.modified_time | Date de derniere modification |
file.web_view_link | Lien pour ouvrir dans le navigateur |
file.url | URL du fichier |
file.thumbnail_link | Lien vers la miniature (valide temporairement) |
file.size | Taille du fichier (octets) |
file.roles | Permissions d’acces |
Pour plus de details, consultez Google Drive Files API.
Configuration Google Cloud Platform
1. Creation du projet
Accedez a https://console.cloud.google.com/ :
Creez un nouveau projet
Entrez le nom du projet
Selectionnez l’organisation et l’emplacement
2. Activation de l’API Google Drive
Dans « APIs et services » -> « Bibliotheque » :
Recherchez « Google Drive API »
Cliquez sur « Activer »
3. Creation du compte de service
Dans « APIs et services » -> « Identifiants » :
Selectionnez « Creer des identifiants » -> « Compte de service »
Entrez le nom du compte de service (ex: fess-crawler)
Cliquez sur « Creer et continuer »
Les roles ne sont pas necessaires (ignorez)
Cliquez sur « Terminer »
4. Creation de la cle du compte de service
Pour le compte de service cree :
Cliquez sur le compte de service
Ouvrez l’onglet « Cles »
« Ajouter une cle » -> « Creer une nouvelle cle »
Selectionnez le format JSON
Enregistrez le fichier JSON telecharge
5. Activation de la delegation a l’echelle du domaine
Dans les parametres du compte de service :
Cochez « Activer la delegation a l’echelle du domaine »
Cliquez sur « Enregistrer »
Copiez « l’ID client OAuth 2 »
6. Autorisation dans la console d’administration Google Workspace
Accedez a https://admin.google.com/ :
Ouvrez « Securite » -> « Acces et controle des donnees » -> « Controles d’API »
Selectionnez « Delegation a l’echelle du domaine »
Cliquez sur « Ajouter nouveau »
Entrez l’ID client
Entrez les scopes OAuth :
https://www.googleapis.com/auth/drive.readonly
Cliquez sur « Autoriser »
Configuration des identifiants
Obtention des informations depuis le fichier JSON
Fichier JSON telecharge :
{
"type": "service_account",
"project_id": "your-project-id",
"private_key_id": "46812a3b4c5d6e7f8g9h0i1j2k3l4m5n6o7p8q9r",
"private_key": "-----BEGIN PRIVATE KEY-----\nMIIEvgIBADANBgk...\n-----END PRIVATE KEY-----\n",
"client_email": "fess-crawler@your-project.iam.gserviceaccount.com",
"client_id": "123456789012345678901",
"auth_uri": "https://accounts.google.com/o/oauth2/auth",
"token_uri": "https://oauth2.googleapis.com/token",
"auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
"client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/..."
}
Configurez les informations suivantes dans les parametres :
private_key_id->private_key_idprivate_key->private_key(conservez les sauts de ligne en\n)client_email->client_email
Format de la cle privee
private_key conserve les sauts de ligne en \n :
private_key=-----BEGIN PRIVATE KEY-----\nMIIEvgIBADANBgkqhkiG...\n-----END PRIVATE KEY-----\n
Exemples d’utilisation
Crawl de l’ensemble de Google Drive
Parametres :
private_key=-----BEGIN PRIVATE KEY-----\nMIIEvgIBADANBgkqhkiG9w0BAQE...\n-----END PRIVATE KEY-----\n
private_key_id=46812a3b4c5d6e7f8g9h0i1j2k3l4m5n6o7p8q9r
client_email=fess-crawler@your-project-123456.iam.gserviceaccount.com
Script :
title=file.name
content=file.description + "\n" + file.contents
mimetype=file.mimetype
created=file.created_time
last_modified=file.modified_time
url=file.web_view_link
thumbnail=file.thumbnail_link
content_length=file.size
filetype=file.filetype
filename=file.name
Crawl avec permissions
Parametres :
private_key=-----BEGIN PRIVATE KEY-----\nMIIEvgIBADANBgkqhkiG9w0BAQE...\n-----END PRIVATE KEY-----\n
private_key_id=46812a3b4c5d6e7f8g9h0i1j2k3l4m5n6o7p8q9r
client_email=fess-crawler@your-project-123456.iam.gserviceaccount.com
default_permissions={role}drive-users
Script :
title=file.name
content=file.description + "\n" + file.contents
mimetype=file.mimetype
created=file.created_time
last_modified=file.modified_time
url=file.web_view_link
role=file.roles
filename=file.name
Crawler uniquement certains types de fichiers
Google Docs uniquement :
if (file.mimetype == "application/vnd.google-apps.document") {
title=file.name
content=file.description + "\n" + file.contents
mimetype=file.mimetype
created=file.created_time
last_modified=file.modified_time
url=file.web_view_link
}
Depannage
Erreur d’authentification
Symptome : 401 Unauthorized ou 403 Forbidden
Points a verifier :
Verifier si les identifiants du compte de service sont corrects :
Les sauts de ligne de
private_keysont-ils en\n?private_key_idest-il correct ?client_emailest-il correct ?
Verifier si l’API Google Drive est activee
Verifier si la delegation a l’echelle du domaine est configuree
Verifier si l’autorisation a ete accordee dans la console d’administration Google Workspace
Verifier si le scope OAuth est correct (
https://www.googleapis.com/auth/drive.readonly)
Erreur de delegation a l’echelle du domaine
Symptome : Not Authorized to access this resource/api
Solution :
Verifier l’autorisation dans la console d’administration Google Workspace :
L’ID client est-il correctement enregistre ?
Le scope OAuth est-il correct ? (
https://www.googleapis.com/auth/drive.readonly)
Verifier si la delegation a l’echelle du domaine est activee sur le compte de service
Impossible de recuperer les fichiers
Symptome : Le crawl reussit mais 0 fichiers
Points a verifier :
Verifier si des fichiers existent dans Google Drive
Verifier si le compte de service a les droits de lecture
Verifier si la delegation a l’echelle du domaine est correctement configuree
Verifier si le Drive de l’utilisateur cible est accessible
Erreur de quota API
Symptome : 403 Rate Limit Exceeded ou 429 Too Many Requests
Solution :
Verifier le quota dans Google Cloud Platform
Augmenter l’intervalle de crawl
Demander une augmentation de quota si necessaire
Erreur de format de cle privee
Symptome : Invalid private key format
Solution :
Verifier si les sauts de ligne sont correctement en \n :
# Correct
private_key=-----BEGIN PRIVATE KEY-----\nMIIEvgIBADANBgkqhkiG9w0BAQE...\n-----END PRIVATE KEY-----\n
# Incorrect (contient des sauts de ligne reels)
private_key=-----BEGIN PRIVATE KEY-----
MIIEvgIBADANBgkqhkiG9w0BAQE...
-----END PRIVATE KEY-----
Crawl des Drive partages
Note
Pour crawler les Drive partages avec un compte de service, vous devez ajouter le compte de service comme membre du Drive partage.
Ouvrez le Drive partage dans Google Drive
Cliquez sur « Gerer les membres »
Ajoutez l’adresse email du compte de service
Definissez le niveau de permission sur « Lecteur »
Cas de nombreux fichiers
Symptome : Le crawl prend du temps ou expire
Solution :
Diviser en plusieurs data stores
Repartir la charge avec les parametres de planification
Ajuster l’intervalle de crawl
Crawler uniquement des dossiers specifiques
Permissions et controle d’acces
Reflet des permissions de partage Google Drive
Reflet des parametres de partage Google Drive dans les permissions Fess :
Parametres :
private_key=-----BEGIN PRIVATE KEY-----\nMIIEvgIBADANBgkqhkiG9w0BAQE...\n-----END PRIVATE KEY-----\n
private_key_id=46812a3b4c5d6e7f8g9h0i1j2k3l4m5n6o7p8q9r
client_email=fess-crawler@your-project-123456.iam.gserviceaccount.com
default_permissions={role}drive-users
Script :
title=file.name
content=file.description + "\n" + file.contents
role=file.roles
mimetype=file.mimetype
created=file.created_time
last_modified=file.modified_time
url=file.web_view_link
file.roles contient les informations de partage Google Drive.
Informations de reference
Apercu des connecteurs DataStore - Apercu des connecteurs Data Store
Connecteur Microsoft 365 - Connecteur Microsoft 365
Connecteur Box - Connecteur Box
Présentation - Guide de configuration Data Store