Skip to main content
Ce guide explique comment lire, écrire et gérer des fichiers dans une instance de sandbox CoreWeave à l’aide du client CWSandbox. Il s’adresse aux développeurs qui conçoivent des flux de travail chargés de transférer des données vers et depuis des bacs à sable. Il aborde notamment les téléversements et téléchargements en parallèle, la gestion des erreurs et les bonnes pratiques pour les fichiers volumineux.

Choisir l’authentification

Ces exemples s’exécutent sur une capacité sans serveur, sauf si une section indique CKS. Choisissez l’identifiant d’authentification du compte propriétaire de vos Sandbox. Consultez Choisir et obtenir des identifiants d’authentification pour obtenir une clé ou un jeton. Exécutez les commandes d’installation dans un environnement virtuel Python actif. Enregistrez le code Python de l’onglet correspondant à votre identifiant d’authentification sous le nom sandbox_auth.py, dans le même répertoire que les scripts Python que vous exécutez depuis cette page. Ce fichier enregistre le mode d’authentification choisi, et non votre identifiant d’authentification. Les exemples importent AUTH depuis ce fichier et le transmettent explicitement à chaque nouvelle Sandbox ou session.
Utilisez votre clé API Forge via la stratégie d’authentification W&B du SDK :
sandbox_auth.py
Pour un placement sur CKS, choisissez le jeton CoreWeave, activez un exécuteur et définissez placement_mode="cks" lors de la création de la Sandbox ou dans SandboxDefaults. Lorsque vous créez une session avec auth=AUTH, les Sandbox qui lui appartiennent sont également authentifiées. Utilisez le même identifiant d’authentification pour vous reconnecter à vos Sandbox, les lister ou les nettoyer.

Opérations de base

Les exemples de cette section présentent les opérations sur les fichiers les plus courantes : écrire des données dans un chemin de la sandbox, puis les relire. Les opérations sur les fichiers renvoient des objets OperationRef. Utilisez .result() pour bloquer l’exécution jusqu’à l’achèvement de l’opération.

Écrire des fichiers

Laissez la sandbox s’exécuter pendant que vous écrivez et lisez des fichiers. Cet exemple crée deux fichiers, puis les lit avant que le gestionnaire de contexte n’arrête la sandbox :

Lire des fichiers

read_file() renvoie le contenu du fichier sous forme d’octets. L’exemple de la section Écrire des fichiers utilise decode() pour lire du texte et json.loads() pour analyser du JSON. Ces deux lectures s’exécutent dans le contexte du sandbox actif.

Opérations parallèles

Les opérations sur les fichiers rendent la main immédiatement, ce qui permet naturellement de les paralléliser. Lorsque vous avez plusieurs fichiers indépendants, effectuer les téléversements ou les téléchargements en parallèle peut réduire la durée totale de transfert.

Téléversements parallèles

Téléchargements parallèles

Schéma téléversement-traitement-téléchargement

Voici un flux de travail courant : téléverser les fichiers d’entrée, lancer le traitement, puis télécharger les résultats.

Gestion des erreurs

Les opérations sur les fichiers peuvent échouer si un chemin n’existe pas ou n’est pas accessible en écriture. Interceptez SandboxFileError pour gérer ces cas et identifier le chemin concerné.

Fichier introuvable

Erreurs d’écriture

Fichiers binaires

Les opérations sur les fichiers prennent en charge tout type de contenu binaire, y compris les images et les objets Python sérialisés :
Ne désérialisez avec pickle que des données provenant de sources de confiance. Le chargement d’un fichier pickle peut entraîner l’exécution de code arbitraire.

Encodage du texte

Les fichiers sont transférés sous forme d’octets : vous devez donc encoder et décoder explicitement le texte pour éviter toute corruption des caractères non ASCII.

Considérations relatives aux fichiers volumineux

Les API read_file et write_file sont surtout adaptées aux fichiers de petite ou moyenne taille. Pour les fichiers volumineux, tenez compte des points suivants :
  • Tenez compte de la bande passante, car les fichiers transitent par l’API.
  • Dans la mesure du possible, utilisez la diffusion en continu pour les datasets volumineux.
  • Accédez directement au stockage d’objets plutôt que de faire transiter les données par l’API.
Le paramètre object_storage_access crée des identifiants d’authentification CoreWeave AI Object Storage temporaires et les fournit aux conteneurs du sandbox. Votre charge de travail lit et écrit alors directement dans les buckets, si bien que les objets volumineux ne transitent jamais par read_file ni par write_file. Votre organisation doit au préalable enregistrer une configuration de fédération d’identités de charges de travail auprès du plan de contrôle des sandbox ; voir Accès au stockage d’objets. L’exemple suivant utilise l’authentification CoreWeave pour démarrer un sandbox avec un accès en lecture-écriture à un bucket, puis vérifie que les identifiants d’authentification ont bien été injectés. Définissez CWSANDBOX_API_KEY sur un jeton d’accès à l’API CoreWeave de l’organisation configurée, puis remplacez [BUCKET-NAME] par le nom de votre bucket :
Le sandbox définit les variables d’environnement que les SDK AWS lisent pour obtenir les identifiants de conteneur, si bien que tout client compatible S3 exécuté à l’intérieur fonctionne sans clés explicites. Pour connaître ces variables et consulter un exemple Boto3, voir Utiliser les identifiants d’authentification dans le sandbox. Pour restreindre l’identifiant d’authentification à un préfixe de clé, utilisez object_prefix. Pour les charges de travail qui ne font que lire des données, utilisez ObjectStoragePermission.READ. Pour les données temporaires volumineuses qui restent locales au sandbox, joignez plutôt un volume. Voir Volumes.
Dernière modification le 27 octobre 2026