Hochladen von Dateien auf Amazon S3 mit AWS PHP SDK
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.
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.php
und 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 $bucketName
Variable 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.php
Datei 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
- So laden Sie eine Datei mit dem Laravel-Dateisystem auf S3 hoch
- So laden Sie Bilder über FTP in Laravel auf einen anderen Server hoch
- So integrieren Sie die Google Sheets-API mit PHP