...
✅ WEB- und WordPress-Nachrichten, Themen, Plugins. Hier teilen wir Tipps und beste Website-Lösungen.

Hochladen von Dateien auf Amazon S3 mit AWS PHP SDK

33

Möchten Sie Dateien programmgesteuert in Amazon S3 hochladen? Amazon S3 ist ein Cloud-Speicherdienst, in dem Dateien, Bilder usw. gespeichert werden können. Diese Dokumente können je nach Wahl des Eigentümers öffentlich oder privat sein. In diesem Artikel untersuchen wir, wie Sie mithilfe der offiziellen AWS PHP SDK-Bibliothek Dateien in Amazon S3 hochladen.

Amazon S3 bietet hochskalierbaren Objektspeicher. Aufgrund seiner Robustheit und Leistung ist es ein beliebter Cloud-Dienst bei Benutzern.

Warum müssen Sie Dateien auf Amazon S3 hochladen?

Nun, es gibt mehrere Gründe, Ihre Dateien auf Amazon S3 zu speichern. Da es sich um einen Cloud-basierten Dienst handelt, können Sie von überall auf Ihre Dateien zugreifen. Während der Nutzung dieses Dienstes können Benutzer ihre Dokumente vertraulich behandeln. AWS bietet Ihnen eine Funktion, mit der Sie Ihr Dokument entweder öffentlich oder privat halten können. Zweitens, wenn Sie eine Website betreiben, sparen Sie viel Bandbreite, wenn Sie Ihre Dateien in der Cloud aufbewahren. Es spart Ihren Hosting-Speicherplatz und reduziert die Belastung Ihres Servers.

Sehen wir uns jedoch an, wie Sie Dateien mit PHP auf Amazon S3 hochladen.

Holen Sie sich Ihre Sicherheitsanmeldeinformationen

Um mit S3 zu beginnen, sollten Sie ein Konto bei AWS haben. Stellen Sie nach dem Erstellen des AWS-Kontos sicher, dass Sie den Service S3 aktivieren, indem Sie dem Verifizierungsprozess folgen.

Rufen Sie nach der Aktivierung des S3-Dienstes Ihre Sicherheitsanmeldeinformationen ab, die wir für die Arbeit mit den APIs benötigen.

Hochladen von Dateien auf Amazon S3 mit AWS PHP SDK

Code zum Hochladen von Dateien auf Amazon S3

Wir sind bereit mit AWS-API-Schlüsseln. Installieren Sie als Nächstes eine offizielle AWS PHP SDK- Bibliothek in Ihrem Projekt. Ich empfehle, Composer zu verwenden, um diese Bibliothek zu installieren. Öffnen Sie das Terminal in Ihrem Projektstammverzeichnis und führen Sie den folgenden Befehl aus.

composer require aws/aws-sdk-php

Dieser Befehl installiert die Bibliothek mit ihren Abhängigkeiten in Ihrem Projekt.

Erstellen Sie einen Bucket in AWS

In AWS müssen wir einen Bucket erstellen, um unsere Dateien zu speichern. Der Bucket ist nichts anderes als eine logische Speichereinheit in AWS. Alle Ihre Dateien werden im Bucket gespeichert.

Sie können einen Bucket direkt im S3-Dashboard erstellen. Wenn jemand es jedoch dynamisch erstellen möchte, lesen Sie den folgenden Code.

create-bucket.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();
}

Stellen Sie sicher, dass Sie die Platzhalter durch die tatsächlichen Werte ersetzen. Dieser Code erstellt einen Bucket in Ihrem S3-Dashboard. Wir werden die Dateien unter diesem Bucket über die API hochladen.

Im obigen Code habe ich key=>value pair als 'ACL' => 'public-read'. Dieses Paar legt Ihren Bucket- oder Dateizugriff für die Öffentlichkeit fest. Wenn Sie Ihren Speicher privat halten möchten, entfernen Sie diese Zeile aus dem Code.

Der nächste Job ist das Schreiben von Code zum Hochladen von Dateien auf Amazon S3. Für das Tutorial erstelle ich verschiedene PHP-Dateien und schreibe Code darin. In Ihrem Fall können Sie die Logik in Abhängigkeit von Ihrem Projektablauf implementieren.

Datei auf Amazon S3 hochladen

Sie sind mit dem Bucket bereit, um Ihre Dateien zu speichern. Erstellen Sie eine Datei upload-to-s3.phpund fügen Sie den folgenden Code in diese Datei ein.

upload-to-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();
}

Hier sollten Sie den Namen des Buckets für die $bucketNameVariable vergeben. In meinem Fall lade ich eine Datei mit der Aufschrift ‘my-image.png’ hoch, deren Pfad ich im Code festgelegt habe. Dementsprechend sollten Sie den Pfad Ihrer Dateien anpassen. Schließlich drucke ich den Pfad einer hochgeladenen Datei mit get()Methode auf die empfangene Antwort.

Alles erledigt! Führen Sie nun die upload-to-s3.phpDatei im Browser aus und Ihre Datei sollte in den Amazon S3-Bucket hochgeladen werden.

Ich hoffe, Sie verstehen das Erstellen eines Buckets und das Hochladen von Dateien in Amazon S3. Sie können auch die von AWS auf GitHub bereitgestellten Beispielcodes überprüfen .

Zum Thema passende Artikel

Aufnahmequelle: artisansweb.net

Diese Website verwendet Cookies, um Ihre Erfahrung zu verbessern. Wir gehen davon aus, dass Sie damit einverstanden sind, Sie können sich jedoch abmelden, wenn Sie möchten. Annehmen Weiterlesen