---
title: "Action Custom avec les Buckets de la Data Platform"
description: "Il arrive que vous deviez gérer un format de fichier complexe au-delà des capacités de notre action Load"
url: https://docs.ovhcloud.com/fr/guides/public-cloud/data-platform/developers-python-sdk-quick-start-bucket
lang: fr
lastUpdated: 2026-09-14
---
> For AI agents: the complete documentation index is available at https://docs.ovhcloud.com/fr/llms.txt, the full documentation bundle is available at https://docs.ovhcloud.com/fr/llms-full.txt.

# Action Custom avec les Buckets de la Data Platform

## Objectif

Il arrive que vous deviez gérer un format de fichier complexe au-delà des capacités de notre [action Load](https://docs.ovhcloud.com/fr/guides/public-cloud/data-platform/dpe-actions-load.md).
Dans ce cas, nous vous conseillons de stocker et de manipuler les fichiers avec les [Buckets de la Data Platform](https://docs.ovhcloud.com/fr/guides/public-cloud/data-platform/lakehouse-manager-buckets.md) dans votre projet.

:::info
Dans le SDK Python de la Data Platform, le **connecteur Datastore** est utilisé pour interagir avec les Buckets de la Data Platform. Vous pouvez voir le Datastore simplement comme un conteneur de buckets.
:::

L'exemple suivant est écrit dans le contexte d'une [action Custom](https://docs.ovhcloud.com/fr/guides/public-cloud/data-platform/dpe-actions-custom.md). Vous pouvez l'adapter selon vos besoins.

```python
import sys
import pandas as pd
from logging import getLogger

from forepaas.dwh import connect
from forepaas.dwh import bulk_insert

logger = getLogger(__name__)
def extract_func(event):
    try:
        # on récupère des données depuis un bucket et on les archive dans un autre bucket
        bucket_source_name = "your_source_bucket_name_here"
        bucket_archives_name = "your_source_bucket_name_here"

        # crée un connecteur pour gérer le bucket   
        bucket_connector = connect("data_store/{}".format(bucket_source_name))

        # liste les fichiers du bucket
        files = bucket_connector.list()

        # récupère un fichier depuis le bucket Data Store vers un dossier local temporaire
        bucket_filepath = "stations_rides.csv"
        local_filepath = "/tmp/stations_rides.csv"
        bucket_connector.fget(bucket_filepath, local_filepath)

        # lit puis transforme le fichier selon vos besoins
        # ici le format de la colonne date est simplement ajusté pour des raisons de compatibilité 
        df = pd.read_csv(local_filepath, sep=';')
        df['date'] = pd.to_datetime(df['date'])

        # charge le dataframe dans une table du projet nommée 'raw_file'
        cn = connect("dwh/default_dataset/")
        bulk_insert(cn, "stations_rides_artur", df)
        del cn
        
        # option 1 : copie le fichier dans le bucket d'archives
        bucket_archive_filepath = "archives/stations_rides.csv"
        bucket_connector.fcopy_to(bucket_archives_name, bucket_archive_filepath, bucket_filepath)
       
        # option 2 : dépose un fichier dans les archives
        bucket_archives = connect("data_store/{}".format(bucket_archives_name))
        bucket_archives.fput(bucket_archive_filepath, local_filepath)
        del bucket_archives

        # supprime le fichier du bucket source
        bucket_connector.delete(bucket_filepath)

        # se déconnecte du datastore
        del bucket_connector
    except Exception as err: 
        raise Exception("err:{} L:{}".format(err,sys.exc_info()[2].tb_lineno))
```

:::tip
Cela fonctionne également avec tout **Object Store** que vous pouvez définir comme **source compatible S3<sup>1</sup>** dans les Connectors.
:::

## Un autre exemple

Voici un exemple de code qui charge une image dans un bucket à partir d'une simple URL.

```python
from forepaas.dwh import connect

data_store = connect('data_store')

# Récupère le bucket et charge l'image depuis l'URL vers le chemin forepaas/test.jpg.
# Puis récupère enfin l'image depuis le bucket
bucket_test = data_store.get_bucket('test')

lists = bucket_test.list(recursive=True)

bucket_test.put_request("https://i.stack.imgur.com/r8jTK.jpg", path='forepaas/test.jpg')
data = bucket.get('hello/test.jpg')

# Crée un bucket s'il n'existe pas déjà
if data_store.bucket_exists('test-exists') is False:
    data_store.create_bucket('test-exists')

# Se connecte directement au bucket test et supprime le fichier
bucket_test2 = connect('data_store/test')
bucket_test2.delete('hello/test.jpg')
```

## Aller plus loin

Si vous avez besoin d'une formation ou d'une assistance technique pour la mise en oeuvre de nos solutions, contactez votre commercial ou cliquez sur [ce lien](https://www.ovhcloud.com/fr/professional-services/) pour obtenir un devis et demander une analyse personnalisée de votre projet à nos experts de l’équipe Professional Services.

Posez vos questions, faites-nous part de vos commentaires et interagissez directement avec l’équipe qui développe la Data Platform sur le [canal Discord](https://discord.gg/ovhcloud) dédié.

Si vous avez besoin d'une assistance concernant vos services OVHcloud, créez une demande depuis notre [centre d'aide](https://help.ovhcloud.com/csm?id=csm_get_help).

Rejoignez notre [communauté d'utilisateurs](https://community.ovhcloud.com/).

1
 : S3 est une marque déposée appartenant à Amazon Technologies, Inc. Les services de OVHcloud ne sont pas sponsorisés, approuvés, ou affiliés de quelque manière que ce soit.