Stockage de fichiers : S3 (Pro)
Présentation
En complément du plugin de gestion des fichiers, ce type de stockage de fichiers compatible avec le protocole S3 est désormais pris en charge. Tout service de stockage d’objets prenant en charge le protocole S3 peut être facilement intégré, notamment Amazon S3, Alibaba Cloud OSS, Tencent Cloud COS, MinIO et Cloudflare R2, ce qui améliore davantage la compatibilité et la flexibilité des services de stockage.
Fonctionnalités
-
Téléversement côté client : le processus de téléversement des fichiers ne passe pas par le serveur NocoBase. Il se connecte directement au service de stockage de fichiers afin d’offrir une expérience de téléversement plus efficace et plus rapide.
-
Accès privé : lors de l’accès aux fichiers, toutes les URL sont des adresses temporaires autorisées et signées, ce qui garantit la sécurité et la durée de validité de l’accès aux fichiers.
Cas d’utilisation
-
Gestion des tables de fichiers : gérez et stockez de manière centralisée tous les fichiers téléversés, avec la prise en charge de nombreux types de fichiers et modes de stockage, afin de faciliter leur classement et leur recherche.
-
Stockage dans les champs de pièces jointes : stockez les pièces jointes téléversées dans des formulaires ou des enregistrements, avec la possibilité de les associer aux enregistrements correspondants.
Configuration du plugin
-
Activez le plugin plugin-file-storage-s3-pro
-
Cliquez sur "Setting-> FileManager" pour accéder aux paramètres de gestion des fichiers
-
Cliquez sur le bouton "Add new", puis sélectionnez "S3 Pro"

- Après l’ouverture du panneau contextuel, vous constaterez que le formulaire comporte de nombreux champs à remplir. Consultez les sections suivantes pour obtenir les paramètres correspondant au service de fichiers utilisé et renseignez-les correctement dans le formulaire.

Configuration des fournisseurs
Amazon S3
Création d’un bucket
-
Ouvrez https://ap-southeast-1.console.aws.amazon.com/s3/home pour accéder à la console S3
-
Cliquez sur le bouton "Create bucket" à droite

- Renseignez le Bucket Name (nom du bucket). Vous pouvez conserver les valeurs par défaut des autres champs, puis faites défiler la page jusqu’en bas et cliquez sur le bouton "Create" pour terminer la création.


Configuration de CORS
- Accédez à la liste des buckets, recherchez le bucket que vous venez de créer et cliquez dessus pour accéder à sa page de détails

- Cliquez sur l’onglet "Permission", puis faites défiler la page vers le bas jusqu’à la section de configuration CORS


- Renseignez la configuration suivante (vous pouvez l’affiner selon vos besoins), puis enregistrez

Obtention de l’AccessKey et de la SecretAccessKey
- Cliquez sur le bouton "Security credentials" situé en haut à droite de la page

- Faites défiler la page vers le bas jusqu’à la section "Access Keys", puis cliquez sur le bouton "Create Access Key".

- Cliquez sur « Accepter » (cet exemple utilise le compte principal ; en environnement de production, il est recommandé d’utiliser IAM).

- Enregistrez l’Access key et la Secret access key affichées sur la page

Obtention et configuration des paramètres
-
L’AccessKey ID et l’AccessKey Secret correspondent aux valeurs obtenues lors de l’étape précédente. Veillez à les renseigner correctement
-
Accédez au panneau properties de la page de détails du bucket pour obtenir le nom du Bucket et les informations de Region (région).

Accès public (facultatif)
Cette configuration n’est pas obligatoire. Configurez-la lorsque vous souhaitez rendre les fichiers téléversés entièrement publics
- Accédez au panneau Permissions, faites défiler jusqu’à Object Ownership, cliquez sur Modifier et activez les ACL

- Faites défiler jusqu’à Block public access, cliquez sur Modifier et autorisez le contrôle par les ACL

- D בתוך NocoBase, cochez Public access
Configuration des miniatures (facultatif)
Cette configuration est facultative et permet d’optimiser la taille ou le rendu de l’aperçu des images. Veuillez noter que cette solution de déploiement peut entraîner des frais supplémentaires. Consultez les conditions correspondantes d’AWS pour connaître les frais exacts.
-
Accédez à Dynamic Image Transformation for Amazon CloudFront.
-
Cliquez sur le bouton
Launch in the AWS Consoleen bas de la page pour commencer le déploiement de la solution.
-
Suivez les instructions pour terminer la configuration. Portez une attention particulière aux options suivantes :
- Lors de la création de la pile, vous devez spécifier le nom d’un bucket Amazon S3 contenant les images source. Renseignez le nom du bucket créé précédemment.
- Si vous choisissez de déployer l’interface utilisateur de démonstration, vous pourrez tester les fonctions de traitement des images via cette interface une fois le déploiement terminé. Dans la console AWS CloudFormation, sélectionnez votre pile, accédez à l’onglet « Outputs », recherchez la valeur correspondant à la clé DemoUrl, puis cliquez sur ce lien pour ouvrir l’interface de démonstration.
- Cette solution utilise la bibliothèque
sharpNode.js pour traiter efficacement les images. Vous pouvez télécharger le code source depuis le dépôt GitHub et le personnaliser selon vos besoins.

-
Une fois la configuration terminée, attendez que l’état du déploiement devienne
CREATE_COMPLETE. -
Dans la configuration de NocoBase, tenez compte des points suivants :
Thumbnail rule: renseignez les paramètres liés au traitement des images, par exemple?width=100. Consultez la documentation AWS pour plus de détails.Access endpoint: renseignez la valeur de Outputs -> ApiEndpoint après le déploiement.Full access URL style: cochez Ignore (le nom du bucket ayant déjà été renseigné lors de la configuration, il n’est plus nécessaire lors de l’accès).

Exemple de configuration

Alibaba Cloud OSS
Création d’un bucket
- Ouvrez la console OSS à l’adresse https://oss.console.aliyun.com/overview

- Cliquez sur "Buckets" dans le menu de gauche, puis sur le bouton "Create Bucket" pour commencer la création du bucket

-
Renseignez les informations relatives au bucket, puis cliquez sur le bouton Create
-
Le Bucket Name doit correspondre à votre activité ; le nom est libre
-
Pour Region, sélectionnez la région la plus proche de vos utilisateurs
-
Vous pouvez conserver les autres paramètres par défaut ou les configurer selon vos besoins
-

Configuration de CORS
- Accédez à la page de détails du bucket créé à l’étape précédente

- Cliquez sur "Content Security -> CORS" dans le menu central

- Cliquez sur le bouton "Create Rule", renseignez les informations nécessaires, faites défiler vers le bas et cliquez sur "OK". Vous pouvez vous référer à la capture ci-dessous ou effectuer une configuration plus détaillée

Obtention de l’AccessKey et de la SecretAccessKey
- Cliquez sur "AccessKey" sous l’avatar situé en haut à droite

-
Pour faciliter la démonstration, un AccessKey est créé avec le compte principal. En environnement de production, il est recommandé d’utiliser RAM. Consultez https://help.aliyun.com/zh/ram/user-guide/create-an-accesskey-pair-1?spm=5176.28366559.0.0.1b5c3c2fUI9Ql8#section-rjh-18m-7kp
-
Cliquez sur le bouton "Create AccessKey"

- Effectuez la vérification du compte

- Enregistrez l’Access key et la Secret access key affichées sur la page

Obtention et configuration des paramètres
-
L’AccessKey ID et l’AccessKey Secret sont les valeurs obtenues lors de l’étape précédente
-
Accédez à la page de détails du bucket pour obtenir le Bucket

- Faites défiler vers le bas pour obtenir la Region (la partie ".aliyuncs.com" qui suit n’est pas nécessaire)

- Obtenez l’adresse endpoint. Lors de sa saisie dans NocoBase, ajoutez le préfixe https://

Configuration des miniatures (facultatif)
Cette configuration est facultative et s’utilise uniquement lorsque vous devez optimiser la taille ou le rendu de l’aperçu des images.
-
Renseignez les paramètres associés à
Thumbnail rule. Consultez les paramètres de traitement des images pour plus de détails. -
Full upload URL styleetFull access URL stylepeuvent être définis sur la même valeur.
Exemple de configuration

MinIO
Création d’un bucket
- Cliquez sur le menu Buckets à gauche, puis sur Create Bucket pour accéder à la page de création
- Renseignez le nom du bucket, puis cliquez sur le bouton d’enregistrement
Obtention de l’AccessKey et de la SecretAccessKey
- Accédez à Access Keys, puis cliquez sur le bouton Create access key pour accéder à la page de création

- Cliquez sur le bouton d’enregistrement

- Enregistrez l’Access Key et la Secret Key affichées dans la fenêtre contextuelle pour les utiliser lors de la configuration

Configuration des paramètres
-
Accédez à la page NocoBase -> File manager
-
Cliquez sur le bouton Add new, puis sélectionnez S3 Pro
-
Renseignez le formulaire
- AccessKey ID et AccessKey Secret correspondent aux valeurs enregistrées à l’étape précédente
- Region : une instance MinIO déployée en local ne possède pas de notion de Region ; vous pouvez définir la valeur "auto"
- Endpoint : renseignez le nom de domaine ou l’adresse IP du service déployé
- Vous devez définir Full access URL style sur Path-Style
Exemple de configuration

Tencent COS
Vous pouvez vous référer à la configuration des services de fichiers présentée ci-dessus ; le fonctionnement est similaire
Exemple de configuration

Cloudflare R2
Vous pouvez vous référer à la configuration des services de fichiers présentée ci-dessus ; le fonctionnement est similaire
Exemple de configuration

Utilisation
Référez-vous à l’utilisation du plugin file-manager : https://docs.nocobase.com/data-sources/file-manager/.

