Symfony NOC Storage

#1
Bonjour à tous,

Je voudrais créer dans mon API sous Symfony 6 un endPoint de classement de documents.

Ce endPoint serait chargé de créer des dossiers et de déposer un ou plusieurs fichiers .pdf dans les dossiers créés.

Mon souci est que je ne comprends pas comment me connecter via mon api au NOC Storage Private.

quelqu'un connaitrais-il la bonne la méthode et ou bundle qui pourrait m'aider?

merci.
 

PH-Marc-André.B.

Conseiller technique
Membre du personnel
#2
Bonjour,

J'ai été vérifié un peu plus creux et comme le N0C storage est une solution 'S3 compatible' vous pouvez utiliser le bundle 'Amazon AWS SDK" de Symfony pour interagir avec ce service.

Je ne garanti pas que ce soit 100% fonctionnel mais à priori voici les grandes lignes:

----
Installez le bundle Symfony AWS SDK :

Vous pouvez l'ajouter à votre projet Symfony à l'aide de Composer en exécutant la commande suivante :

Code:
composer require aws/aws-sdk-php

Configurez vos informations d'authentification NOC Storage dans le fichier config/packages/aws.yaml de votre application Symfony. Assurez-vous de remplacer les valeurs par les informations correctes de votre compte NOC Storage :

Code:
aws:
    region: 'votre_region'
    version: 'latest'
    credentials:
        key: 'votre_cle'
        secret: 'votre_secret'

Créez votre endpoint Symfony pour le classement de documents. Vous pouvez utiliser le client AWS S3 pour interagir avec le service NOC Storage de manière similaire à la manière dont vous interagiriez avec Amazon S3. Par exemple, pour créer un dossier et déposer un fichier PDF dans ce dossier :


Code:
use Aws\S3\S3Client;
use Symfony\Component\HttpFoundation\File\UploadedFile;

// ...

public function createDocumentFolderAndUploadPdf(S3Client $s3Client, UploadedFile $pdfFile)
{
    $bucketName = 'votre_bucket'; // Remplacez par le nom de votre bucket NOC Storage
    $folderName = 'nom_du_dossier'; // Remplacez par le nom de votre dossier

    // Créez le dossier (un préfixe dans S3)
    $s3Client->putObject([
        'Bucket' => $bucketName,
        'Key' => $folderName . '/',
        'Body' => '',
    ]);

    // Déposez le fichier PDF dans le dossier
    $s3Client->putObject([
        'Bucket' => $bucketName,
        'Key' => $folderName . '/' . $pdfFile->getClientOriginalName(),
        'SourceFile' => $pdfFile->getPathname(),
    ]);
}

Assurez-vous de consulter la documentation de Symfony AWS SDK pour plus de détails sur son utilisation et la gestion des objets S3.


Les informations d'authentification pour le N0C storage se trouvent directement dans le panneau N0C // Fichiers // N0C Storage


En espérant que cela puisse vous aider davantage, ainsi que la communauté :)
 
Haut