Dans cet article
Mon dépôt bloc est un fork de MrKuros/Blender-Cloud-Storage. Il conserve le crédit de l’auteur d’origine et explore un panneau Blender pour parcourir des ressources dans AWS S3 et MinIO.
Parcourir et importer suivent deux chemins
Vue générale des composants et des échanges vérifiés dans le dépôt.

flowchart LR
subgraph group_ui["Blender interface"]
node_preferences["Connection preferences<br/>[addon.py]"]
node_panel["Integration panel<br/>[addon.py]"]
node_browse["Browse and search<br/>[addon.py]"]
end
subgraph group_workflow["File workflows"]
node_list["Bucket listing<br/>[addon.py]"]
node_upload["Upload files<br/>[addon.py]"]
node_dependencies["Dependency transfer<br/>[addon.py]"]
node_download["Download files<br/>[addon.py]"]
node_manage["Update and delete<br/>[addon.py]"]
node_scene["Load into scene<br/>[addon.py]"]
end
subgraph group_storage["Cloud storage"]
node_client["Cloud client setup<br/>[addon.py]"]
node_providers["S3 and MinIO"]
end
node_artist(("3D artist"))
node_artist -->|"configures"| node_preferences
node_artist -->|"uses"| node_panel
node_panel -->|"shows"| node_browse
node_panel -->|"offers"| node_upload
node_panel -->|"offers refresh"| node_list
node_browse -->|"filters"| node_list
node_upload -->|"refreshes"| node_list
node_upload -.->|"uses connection"| node_client
node_download -.->|"uses connection"| node_client
node_manage -->|"uses connection"| node_client
node_scene -.->|"downloads asset"| node_client
node_client -->|"selects provider"| node_providers
node_list -->|"lists objects"| node_providers
node_upload -->|"uploads objects"| node_providers
node_download -->|"downloads objects"| node_providers
node_manage -->|"updates or deletes"| node_providers
node_upload -->|"includes"| node_dependencies
node_download -->|"includes"| node_dependencies
node_download -.->|"loads supported assets"| node_scene
class node_preferences,node_panel,node_browse toneBlue
class node_list,node_upload,node_dependencies,node_download,node_manage,node_scene toneAmber
class node_client,node_providers toneMint
class node_artist toneIndigoUn module Blender pour le stockage compatible S3. Les artistes configurent une connexion, parcourent ou recherchent les fichiers, transfèrent les dépendances Blender et chargent les ressources prises en charge dans la scène par les opérateurs du module.
- Composants
- 12
- Connexions
- 19
- Liens appuyés par le code ou le README
- 19/19
Version texte du diagramme
- Panneau Blender → Connexion active
- Connexion active → API S3 ou MinIO
- API S3 ou MinIO → Clés et arborescence
- Clés et arborescence → Panneau Blender
- API S3 ou MinIO → Fichier temporaire
- Fichier temporaire → Importateur 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.
Choisir la connexion
addon.py 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.
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.
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.
Préciser la portée du fork
La comparaison avec le dépôt d’origine 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.
