Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Compatibilité S3 des pipelines #17

Open
JoMessina opened this issue Apr 12, 2023 · 0 comments
Open

Compatibilité S3 des pipelines #17

JoMessina opened this issue Apr 12, 2023 · 0 comments

Comments

@JoMessina
Copy link
Contributor

Réaliser l'écriture et la lecture d'un fichier sur un système amazon cloud S3, voici la démarche suivi :

  • Créer un nouveau projet

  • Lancer un conteneur docker avec minio avec la configuration suivante

    s3:
      image: quay.io/minio/minio
      ports: 
        - ${MINIO_PORT_0:-9000}:9000
        - ${MINIO_PORT_1:-9001}:9001
      command: [ 'server', '/data', '--console-address', ':9001' ]
      volumes:
        - 'minio_data:/data'
    volumes:
    minio_data:
    
  • Accéder à l'interface Minio et aller dans l'onglet bucket pour créer un nouveau bucket
    image

  • Créer des clés d'accès pour minio, ces informations servirons pour la configuration du client S3 (key et secret).
    image

  • composer require php-etl/satellite

  • composer require php-etl/csv-plugin

  • Configuration satellite.yaml :

    satellites:
        csv_to_csv:
            label: 'CSV to CSV'
            filesystem:
                path: build
            pipeline:
                steps:
                    - csv:
                          extractor:
                              file_path: '../data/input/test.csv'
                    - csv:
                          loader:
                              file_path: 's3://s3filesystemtest/output/test.csv'
    
  • php bin/satellite build src/satellite.yaml

  • Ajouter le code suivant dans le fichier pipeline.php généré par le build

    $client = new S3Client([
          'version'     => 'latest',
          'region'      => 'us-west-2',
          'endpoint' => 'http://127.0.0.1:19000',
          'credentials' => [
              'key'    => 'ZDJ2tvFLyUIPX61P',
              'secret' => 'sub9RRBtSZH3yImPckBKqCUmSbdyuwua',
          ],
      ]);
    $client->registerStreamWrapper();
    
  • php bin/satellite run:pipeline build/

Résultat :
image
image
image

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Development

No branches or pull requests

1 participant