Aller au contenu
← Tous les articles
Présentation du projet

Mon fork bloc : parcourir S3 et MinIO depuis Blender

Écouter en version balado

Parcourir S3 depuis Blender · 2:07 · voix synthétiques, script rédigé avec l’IA

Transcription

Sylvie : Imaginez une artiste dans Blender qui a besoin d'un maillage rangé dans un bucket cloud. Faut-il vraiment sortir de l'appli, télécharger, puis importer à la main ?

Thierry : C'est ce qu'on fait tous. Il y a mieux ?

Sylvie : Antoine a un fork nommé bloc qui explore justement ça : un panneau Blender pour parcourir des ressources dans AWS S3 et MinIO. C'est le fork d'une extension existante, et il garde le crédit de l'auteur d'origine.

Thierry : Comment le panneau sait à quel stockage parler ?

Sylvie : Grâce aux connexions. Chacune a un fournisseur, un point d'accès, un bucket et une région. Les préférences en contiennent plusieurs, une seule est active, et l'initialisation choisit le client S3 ou MinIO en conséquence.

Thierry : Le stockage objet n'a pas vraiment de dossiers, non ?

Sylvie : Non, il a des clés. L'extension les découpe sur la barre oblique et construit une arborescence imbriquée. Le panneau affiche une hiérarchie sans faire semblant que c'est un disque local.

Thierry : Et pour retrouver un fichier ?

Sylvie : Il y a une recherche approximative avec RapidFuzz. Elle compare les noms et les segments de chemin, privilégie les correspondances directes et filtre par scènes, maillages, images ou matériaux.

Thierry : Et l'import, c'est juste télécharger et c'est réglé ?

Sylvie : Pas tout à fait, et c'est le détail qu'Antoine souligne. Télécharger et importer, ce sont deux étapes. Après le téléchargement, un chargeur choisit un importeur pour STL, OBJ, PLY ou les variantes USD. Le reste est refusé avec un message.

Thierry : Donc la liste peut marcher pendant que l'import échoue.

Sylvie : Exactement. Il note aussi une limite : le code fait un seul appel de listage S3, donc les très gros buckets demanderaient de la pagination.

Thierry : J'aime qu'il montre les bords du projet.

Sylvie : Pareil pour la portée : 10 commits d'avance et 5 de retard sur l'original au moment de la comparaison, ce qui ne veut pas dire que l'original a accepté quoi que ce soit. Le billet complet a le schéma des chemins de navigation et d'import.

Mon fork bloc : parcourir S3 et MinIO depuis Blender
Table des matières

Mon dépôt bloc[1] est un fork de MrKuros/Blender-Cloud-Storage[2]. Il conserve le crédit de l’auteur d’origine et explore un panneau Blender pour parcourir des ressources dans AWS S3 et MinIO.

1. Parcourir et importer suivent deux chemins

flowchart LR
  Storage["S3 ou MinIO"] --> Listing["Liste des dossiers"]
  Listing --> Panel["Panneau Blender"]
  Panel --> Download["Télécharger un objet"]
  Download --> Import["Import local dans Blender"]

La liste construit l’arborescence du panneau; le chargement récupère les octets et appelle un importateur local. L’actualisation peut donc réussir alors qu’un format non pris en charge bloque l’import. Le rafraîchissement en arrière-plan transmet les changements d’interface par les timers Blender.

Lire la note d’architecture et ses frontières de connexion et d’import.

2. Choisir la connexion

addon.py[3] définit un groupe de propriétés CloudConnection avec fournisseur, point d’accès, bucket et région. Les préférences contiennent plusieurs connexions et l’index de celle qui est active. L’initialisation choisit ensuite le client S3 ou MinIO correspondant.

C’est ce qui m’intéresse à la rencontre de l’infographie et de la plateforme : l’artiste reste dans Blender, tandis que l’extension traduit ses actions en opérations sur le stockage objet.

3. Représenter les objets dans des dossiers

Le stockage objet utilise des clés. L’opérateur de rafraîchissement découpe ces clés sur / et construit un dictionnaire imbriqué pour le panneau. L’état des dossiers ouverts est conservé séparément. L’interface permet ainsi une navigation hiérarchique sans confondre ce stockage avec un système de fichiers local.

CloudSearchManager ajoute une recherche approximative avec RapidFuzz. Il compare noms et segments de chemins, privilégie les correspondances directes et propose des filtres pour les scènes, maillages, images et matériaux.

4. Distinguer téléchargement et import

La fonction de téléchargement enregistre l’objet dans un chemin temporaire. L’opérateur de chargement choisit ensuite un importeur Blender pour STL, OBJ, PLY ou les variantes USD. Les autres extensions produisent un message d’erreur. Un transfert réussi ne suffit donc pas à confirmer l’import d’un objet utilisable.

L’opérateur d’envoi du fichier courant transmet le .blend sauvegardé. Le README parle aussi des dépendances, mais je vérifierais l’inclusion des textures et les chemins relatifs avant de l’utiliser pour déplacer une scène complète.

5. Préciser la portée du fork

La comparaison avec le dépôt d’origine[4] indiquait 10 commits d’avance et 5 de retard le 23 octobre 2026. Les changements concernent l’extension, ses métadonnées et le README. Cet historique ne signifie pas que le projet d’origine a accepté ces modifications.

Le code utilise également un seul appel S3 list_objects_v2. Les buckets qui dépassent une réponse nécessitent donc un travail de pagination. Ce sont les détails de fonctionnement que je souhaite garder visibles en reprenant ce projet.

Références

  1. antoinebou12. (). bloc. [Software repository] github.com.
  2. MrKuros. (). Blender-Cloud-Storage. [Software repository] github.com.
  3. antoinebou12. (). addon.py. [Source file or documentation] github.com.
  4. antoinebou12. (). comparaison avec le dépôt d’origine. [Source file or documentation] github.com.

Les références utilisent la date de publication de cet article.