Travailler avec S3 et les stockages cloud en PHP : bibliothèque AWS SDK pour PHP

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

Travailler avec S3 et les stockages cloud en PHP : AWS SDK pour PHP



Les applications web modernes utilisent de plus en plus les stockages cloud pour stocker des fichiers, des images, des sauvegardes et d'autres contenus. Amazon S3 (Simple Storage Service) est l'un des services de stockage d'objets les plus populaires, offrant un stockage scalable, sécurisé et haute performance. Dans cet article, nous allons voir comment travailler avec S3 et les stockages cloud en PHP à l'aide du SDK AWS officiel pour PHP.



Qu'est-ce que le SDK AWS pour PHP ?



Le SDK AWS pour PHP est la bibliothèque officielle d'Amazon qui permet d'interagir avec les services AWS, y compris S3, depuis des applications PHP. Il fournit une interface orientée objet pratique, une gestion automatique des signatures de requêtes, la gestion des erreurs et le support de toutes les versions modernes de PHP (7.2+).



Installation du SDK AWS



L'installation se fait via Composer. Exécutez la commande à la racine de votre projet :



composer require aws/aws-sdk-php


Après l'installation, incluez l'autoloader de Composer dans votre fichier PHP :



require 'vendor/autoload.php';


Configuration de la connexion à S3



Pour travailler avec S3, vous aurez besoin d'un Access Key ID et d'un Secret Access Key, que vous pouvez obtenir dans la console AWS IAM. Vous devez également spécifier la région de votre bucket (par exemple, us-east-1 ou eu-central-1).



Exemple de configuration de base du client S3 :



use Aws\\S3\\S3Client;

$s3Client = new S3Client([ 'version' => 'latest', 'region' => 'us-east-1', 'credentials' => [ 'key' => 'VOTRE_ACCESS_KEY', 'secret' => 'VOTRE_SECRET_KEY', ],]);


Pour la production, il est recommandé d'utiliser des variables d'environnement ou des fichiers de configuration AWS afin de ne pas stocker les clés dans le code :



putenv('AWS_ACCESS_KEY_ID=VOTRE_ACCESS_KEY');putenv('AWS_SECRET_ACCESS_KEY=VOTRE_SECRET_KEY');putenv('AWS_DEFAULT_REGION=us-east-1');


Opérations principales avec S3 en PHP



1. Création d'un bucket



Un bucket est un conteneur pour vos objets (fichiers). Le nom du bucket doit être globalement unique :



try {    $result = $s3Client->createBucket([        'Bucket' => 'my-unique-bucket-name',    ]);    echo "Bucket créé : " . $result['Location'];} catch (Aws\\Exception\\AwsException $e) {    echo "Erreur : " . $e->getMessage();}


2. Téléchargement d'un fichier (PutObject)



Téléchargement d'un fichier depuis le système de fichiers local vers S3 :



try {    $result = $s3Client->putObject([        'Bucket' => 'my-unique-bucket-name',        'Key'    => 'images/photo.jpg',         // chemin de l'objet dans le bucket        'SourceFile' => '/local/path/to/photo.jpg', // fichier local        'ACL'    => 'public-read',               // droits d'accès    ]);    echo "Fichier téléchargé. URL : " . $result['ObjectURL'];} catch (Aws\\Exception\\AwsException $e) {    echo "Erreur de téléchargement : " . $e->getMessage();}


Vous pouvez également télécharger des données directement depuis une chaîne avec le paramètre Body :



$result = $s3Client->putObject([    'Bucket' => 'my-unique-bucket-name',    'Key'    => 'data.txt',    'Body'   => 'Contenu du fichier',]);


3. Téléchargement d'un fichier (GetObject)



Télécharger un fichier depuis S3 peut se faire dans un fichier ou dans une variable :



// Dans un fichier$result = $s3Client->getObject([    'Bucket' => 'my-unique-bucket-name',    'Key'    => 'images/photo.jpg',    'SaveAs' => '/local/path/to/downloaded_photo.jpg',]);

// Dans une variable$result = $s3Client->getObject([ 'Bucket' => 'my-unique-bucket-name', 'Key' => 'data.txt',]);$content = $result['Body']->getContents();echo $content;


4. Suppression d'un fichier (DeleteObject)



try {    $                    

Recommendations