Charger des fichiers sur Amazon S3 à l’aide d’AWS PHP SDK
Voulez-vous télécharger des fichiers sur Amazon S3 par programmation ? Amazon S3 est un service de stockage cloud où l’on peut stocker des fichiers, des images, etc. Ces documents peuvent être publics ou privés selon le choix du propriétaire. Dans cet article, nous étudions comment télécharger des fichiers sur Amazon S3 à l’aide de la bibliothèque officielle AWS PHP SDK.
Amazon S3 fournit un stockage d’objets hautement évolutif. En raison de sa robustesse et de ses performances, il s’agit d’un service cloud populaire parmi les utilisateurs.
Pourquoi avoir besoin de télécharger des fichiers sur Amazon S3 ?
Eh bien, il existe plusieurs raisons de conserver vos fichiers sur Amazon S3. Comme il s’agit d’un service basé sur le cloud, vous pouvez accéder à vos fichiers de n’importe où. En utilisant ce service, les utilisateurs peuvent garder leurs documents confidentiels. AWS vous fournit une fonctionnalité pour garder votre document public ou privé. Deuxièmement, si vous exécutez un site Web, conserver vos fichiers sur le cloud vous fera économiser beaucoup de bande passante. Il économise votre espace d’hébergement et réduit les charges sur votre serveur.
Cela étant dit, examinons comment télécharger des fichiers sur Amazon S3 à l’aide de PHP.
Obtenez vos informations d’identification de sécurité
Pour commencer avec S3, vous devez avoir un compte sur AWS. Après avoir créé le compte AWS, assurez-vous d’activer le service S3 en suivant leur processus de vérification.
Lors de l’activation du service S3, obtenez vos informations d’identification de sécurité dont nous aurons besoin pour travailler avec les API.
Code pour le téléchargement de fichiers vers Amazon S3
Nous sommes prêts avec les clés d’API AWS. Ensuite, installez une bibliothèque officielle AWS PHP SDK dans votre projet. Je recommande d’utiliser Composer pour installer cette bibliothèque. Ouvrez le terminal dans le répertoire racine de votre projet et exécutez la commande ci-dessous.
composer require aws/aws-sdk-php
Cette commande installera la bibliothèque avec ses dépendances dans votre projet.
Créer un compartiment sur AWS
Dans AWS, nous devons créer un Bucket pour stocker nos fichiers. Le compartiment n’est rien d’autre qu’une unité logique de stockage dans AWS. Tous vos fichiers seront stockés dans le bucket.
Vous pouvez créer un compartiment directement sur le tableau de bord S3. Mais si quelqu’un cherche à le créer dynamiquement, reportez-vous au code ci-dessous.
créer-seau.php
<?php
require 'vendor/autoload.php';
use AwsS3S3Client;
$bucketName = 'YOUR_BUCKET_NAME';
$client = new S3Client([
'version' => 'latest',
'region' => 'YOUR_AWS_REGION',
'credentials' => [
'key' => 'ACCESS_KEY_ID',
'secret' => 'SECRET_ACCESS_KEY'
]
]);
try {
$result = $client->createBucket([
'Bucket' => $bucketName, // REQUIRED
'ACL' => 'public-read',
]);
echo "Bucket created successfully.";
} catch (AwsS3ExceptionS3Exception $e) {
// output error message if fails
echo $e->getMessage();
}
Assurez-vous de remplacer les espaces réservés par les valeurs réelles. Ce code crée un compartiment sur votre tableau de bord S3. Nous téléchargerons les fichiers sous ce bucket via l’API.
Dans le code ci-dessus, j’ai passé la paire clé=>valeur en tant que 'ACL' => 'public-read'
. Cette paire définit l’accès public à votre bucket ou à vos fichiers. Si vous souhaitez garder votre stockage privé, supprimez cette ligne du code.
Le prochain travail consiste à écrire du code pour télécharger des fichiers sur Amazon S3. Pour le tutoriel, je crée différents fichiers PHP et y écris du code. Dans votre cas, n’hésitez pas à mettre en œuvre la logique en fonction de votre flux de projet.
Télécharger le fichier sur Amazon S3
Vous êtes prêt avec le bucket pour stocker vos fichiers. Créez un fichier upload-to-s3.php
et placez le code ci-dessous dans ce fichier.
télécharger-vers-s3.php
<?php
require 'vendor/autoload.php';
use AwsS3S3Client;
// Instantiate an Amazon S3 client.
$s3 = new S3Client([
'version' => 'latest',
'region' => 'YOUR_AWS_REGION',
'credentials' => [
'key' => 'ACCESS_KEY_ID',
'secret' => 'SECRET_ACCESS_KEY'
]
]);
$bucketName = 'YOUR_BUCKET_NAME';
$file_Path = __DIR__. '/my-image.png';
$key = basename($file_Path);
// Upload a publicly accessible file. The file size and type are determined by the SDK.
try {
$result = $s3->putObject([
'Bucket' => $bucketName,
'Key' => $key,
'Body' => fopen($file_Path, 'r'),
'ACL' => 'public-read',
]);
echo "Image uploaded successfully. Image path is: ". $result->get('ObjectURL');
} catch (AwsS3ExceptionS3Exception $e) {
echo "There was an error uploading the file.n";
echo $e->getMessage();
}
Ici, vous devez attribuer le nom du compartiment à la $bucketName
variable. Dans mon cas, je télécharge un fichier disons "mon-image.png" quel chemin j’ai défini dans le code. En conséquence, vous devez ajuster le chemin de vos fichiers. Enfin, j’imprime le chemin d’un fichier téléchargé en utilisant la get()
méthode sur la réponse reçue.
Terminé! Exécutez maintenant le upload-to-s3.php
fichier sur le navigateur et votre fichier doit être téléchargé sur le compartiment Amazon S3.
J’espère que vous comprenez la création d’un compartiment et le téléchargement de fichiers sur Amazon S3. Vous pouvez également consulter des exemples de codes fournis par AWS sur GitHub.
Articles Liés
- Comment télécharger un fichier sur S3 à l’aide du système de fichiers Laravel
- Comment télécharger des images sur un autre serveur via FTP dans Laravel
- Comment intégrer l’API Google Sheets avec PHP