Skip to main content
Ces exemples utilisent un jeton d’accès à l’API CoreWeave défini dans CWSANDBOX_API_KEY. Pour l’authentification par clé API Forge, consultez Premiers pas. Pour connaître les exigences liées à CKS, consultez Modes de placement. 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.

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

Lire des fichiers

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 15 octobre 2026