Arbeit mit S3 und Cloud-Speichern in PHP: Die AWS SDK für PHP-Bibliothek

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Arbeit mit S3 und Cloud-Speichern in PHP: AWS SDK für PHP



Moderne Webanwendungen nutzen zunehmend Cloud-Speicher zum Ablegen von Dateien, Bildern, Backups und anderen Inhalten. Amazon S3 (Simple Storage Service) ist einer der beliebtesten Objektspeicherdienste, der skalierbaren, sicheren und leistungsstarken Speicher bietet. In diesem Artikel betrachten wir, wie man mit S3 und Cloud-Speichern in PHP mithilfe des offiziellen AWS SDK für PHP arbeitet.



Was ist das AWS SDK für PHP?



Das AWS SDK für PHP ist die offizielle Bibliothek von Amazon, die es ermöglicht, mit AWS-Diensten, einschließlich S3, aus PHP-Anwendungen heraus zu interagieren. Es bietet eine benutzerfreundliche objektorientierte Schnittstelle, automatische Verwaltung von Anfragesignaturen, Fehlerbehandlung und Unterstützung aller modernen PHP-Versionen (7.2+).



Installation des AWS SDK



Die Installation erfolgt über Composer. Führen Sie den folgenden Befehl im Stammverzeichnis Ihres Projekts aus:



composer require aws/aws-sdk-php


Nach der Installation binden Sie den Composer-Autoloader in Ihre PHP-Datei ein:



require 'vendor/autoload.php';


Konfiguration der S3-Verbindung



Für die Arbeit mit S3 benötigen Sie einen Access Key ID und einen Secret Access Key, die Sie in der AWS IAM-Konsole erhalten. Außerdem müssen Sie die Region Ihres Buckets angeben (z. B. us-east-1 oder eu-central-1).



Beispiel einer grundlegenden Konfiguration des S3-Clients:



use Aws\\S3\\S3Client;

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


Für die Produktion wird empfohlen, Umgebungsvariablen oder AWS-Konfigurationsdateien zu verwenden, um Schlüssel nicht im Code zu speichern:



putenv('AWS_ACCESS_KEY_ID=IHR_ACCESS_KEY');putenv('AWS_SECRET_ACCESS_KEY=IHR_SECRET_KEY');putenv('AWS_DEFAULT_REGION=us-east-1');


Grundlegende Operationen mit S3 in PHP



1. Erstellen eines Buckets



Ein Bucket ist ein Container für Ihre Objekte (Dateien). Der Bucket-Name muss global eindeutig sein:



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


2. Hochladen einer Datei (PutObject)



Hochladen einer Datei aus dem lokalen Dateisystem zu S3:



try {    $result = $s3Client->putObject([        'Bucket' => 'my-unique-bucket-name',        'Key'    => 'images/photo.jpg',         // Pfad zum Objekt im Bucket        'SourceFile' => '/local/path/to/photo.jpg', // lokale Datei        'ACL'    => 'public-read',               // Zugriffsrechte    ]);    echo "Datei hochgeladen. URL: " . $result['ObjectURL'];} catch (Aws\\Exception\\AwsException $e) {    echo "Fehler beim Hochladen: " . $e->getMessage();}


Sie können Daten auch direkt aus einem String mit dem Parameter Body hochladen:



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


3. Herunterladen einer Datei (GetObject)



Eine Datei von S3 kann in eine Datei oder in eine Variable heruntergeladen werden:



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

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


4. Löschen einer Datei (DeleteObject)



try {    $                    

Empfehlungen