Amazon Web Services (AWS) ist eine leistungsstarke Plattform, die eine breite Palette von Diensten für Entwickler und Unternehmen bietet. Unter diesen Diensten ist Amazon Simple Storage Service (S3) einer der beliebtesten und am weitesten verbreiteten. Um programmgesteuert mit S3 zu interagieren, können Sie das AWS SDK für PHP verwenden. In diesem Artikel führen wir Sie durch den Prozess der Konfiguration des AWS SDK für PHP mit S3.
Bevor wir beginnen, stellen Sie sicher, dass Sie Folgendes haben:
Um das AWS SDK für PHP zu installieren, können Sie Composer verwenden. Führen Sie den folgenden Befehl in Ihrem Terminal aus:
composer require aws/aws-sdk-php
Dieser Befehl installiert die neueste Version des AWS SDK für PHP in Ihrem Projekt.
Sobald Sie das SDK installiert haben, müssen Sie es mit Ihrer AWS-Zugriffsschlüssel-ID und Ihrem geheimen Zugriffsschlüssel konfigurieren. Sie können dies tun, indem Sie eine Konfigurationsdatei erstellen oder Umgebungsvariablen festlegen.
Erstellen Sie in Ihrem Projekt eine neue Datei mit dem Namen config.php und fügen Sie den folgenden Code hinzu:
<?php require 'vendor/autoload.php'; use Aws\Sdk; $sdk = new Sdk([ 'region' => 'us-east-1', 'version' => 'latest', 'credentials' => [ 'key' => 'YOUR_ACCESS_KEY_ID', 'secret' => 'YOUR_SECRET_ACCESS_KEY', ] ]); $s3Client = $sdk->createS3();
Ersetzen Sie YOUR_ACCESS_KEY_ID und YOUR_SECRET_ACCESS_KEY durch Ihre tatsächliche AWS-Zugriffsschlüssel-ID und Ihren geheimen Zugriffsschlüssel.
Alternativ können Sie die AWS-Zugriffsschlüssel-ID und den geheimen Zugriffsschlüssel als Umgebungsvariablen festlegen:
export AWS_ACCESS_KEY_ID=YOUR_ACCESS_KEY_ID export AWS_SECRET_ACCESS_KEY=YOUR_SECRET_ACCESS_KEY
Dann erstellen Sie den S3-Client wie folgt:
<?php require 'vendor/autoload.php'; use Aws\Sdk; $sdk = new Sdk([ 'region' => 'us-east-1', 'version' => 'latest', ]); $s3Client = $sdk->createS3();
Bereit, mehr über AWS und PHP zu erfahren? Schauen Sie sich unsere anderen Artikel zum Thema „AWS-Konfiguration von SSO“ und „Behebung von Laravel-Berechtigungsverweigerungsfehlern“ an.
Da Sie nun das AWS SDK für PHP mit S3 konfiguriert haben, können Sie damit beginnen, es für die Interaktion mit Ihren S3-Buckets zu verwenden. Hier ist ein Beispiel, wie Sie alle Buckets in Ihrem Konto auflisten:
$buckets = $s3Client->listBuckets(); foreach ($buckets['Buckets'] as $bucket) { echo $bucket['Name'] . PHP_EOL; }
Klar, hier sind einige zusätzliche Beispiele und Best Practices für die Verwendung des AWS SDK für PHP mit S3.
Um eine Datei in einen S3-Bucket hochzuladen, können Sie die putObject-Methode verwenden. Hier ist ein Beispiel:
$bucketName = 'my-bucket'; $keyName = 'my-file.txt'; $filePath = '/path/to/my-file.txt'; $result = $s3Client->putObject([ 'Bucket' => $bucketName, 'Key' => $keyName, 'SourceFile' => $filePath, ]); echo $result['ObjectURL'] . PHP_EOL;
Dieser Code lädt die Datei unter /path/to/my-file.txt in den my-bucket-Bucket hoch und gibt die URL der hochgeladenen Datei aus.
Um eine Datei aus einem S3-Bucket herunterzuladen, können Sie die getObject-Methode verwenden. Hier ist ein Beispiel:
$bucketName = 'my-bucket'; $keyName = 'my-file.txt'; $filePath = '/path/to/downloaded-file.txt'; $result = $s3Client->getObject([ 'Bucket' => $bucketName, 'Key' => $keyName, 'SaveAs' => $filePath, ]); echo $result['ContentLength'] . ' bytes downloaded.' . PHP_EOL;
Dieser Code lädt die Datei mit dem Schlüssel my-file.txt aus dem my-bucket-Bucket herunter und speichert sie unter /path/to/downloaded-file.txt.
Um die Objekte in einem S3-Bucket aufzulisten, können Sie die listObjects-Methode verwenden. Hier ist ein Beispiel:
$bucketName = 'my-bucket'; $result = $s3Client->listObjects([ 'Bucket' => $bucketName, ]); foreach ($result['Contents'] as $object) { echo $object['Key'] . PHP_EOL; }
Dieser Code listet alle Objekte im my-bucket-Bucket auf und druckt ihre Schlüssel aus.
Hier sind einige Best Practices, die Sie bei der Verwendung des AWS SDK für PHP mit S3 beachten sollten:
Klar, hier sind einige zusätzliche Tipps für die Verwendung des AWS SDK für PHP mit S3 in Laravel.
Laravel verfügt über eine integrierte Unterstützung für das AWS SDK für PHP, was die Verwendung von S3 in Ihren Laravel-Anwendungen vereinfacht. Hier sind einige Tipps zur Verwendung des SDK mit Laravel:
composer require aws/aws-sdk-php
AWS_ACCESS_KEY_ID=your_access_key_id AWS_SECRET_ACCESS_KEY=your_secret_access_key AWS_DEFAULT_REGION=your_region
use Illuminate\Support\Facades\Storage; // Upload a file Storage::disk('s3')->put('my-file.txt', file_get_contents('/path/to/my-file.txt')); // Download a file Storage::disk('s3')->download('my-file.txt', '/path/to/downloaded-file.txt'); // List the objects in a bucket $objects = Storage::disk('s3')->listContents('my-bucket'); foreach ($objects as $object) { echo $object['path'] . PHP_EOL; }
use Illuminate\Support\ServiceProvider; use League\Flysystem\AwsS3V3\AwsS3V3Adapter; use Aws\S3\S3Client; class S3ServiceProvider extends ServiceProvider { public function register() { $this->app->singleton('filesystems.disks.s3', function ($app) { return new AwsS3V3Adapter( new S3Client([ 'region' => config('filesystems.disks.s3.region'), 'version' => 'latest', 'credentials' => [ 'key' => config('filesystems.disks.s3.key'), 'secret' => config('filesystems.disks.s3.secret'), ], ]), config('filesystems.disks.s3.bucket') ); }); } }
use Illuminate\Support\Facades\Storage; use Illuminate\Queue\InteractsWithQueue; use Illuminate\Contracts\Queue\ShouldQueue; class UploadFile implements ShouldQueue { use InteractsWithQueue; protected $filePath; public function __construct($filePath) { $this->filePath = $filePath; } public function handle() { Storage::disk('s3')->put('my-file.txt', file_get_contents($this->filePath)); } }
Hier sind einige Best Practices, die Sie bei der Verwendung des AWS SDK für PHP mit S3 in Laravel beachten sollten:
In diesem Artikel haben wir die Grundlagen der Konfiguration des AWS SDK für PHP mit S3 behandelt und einige zusätzliche Beispiele und Best Practices für die Verwendung des SDK mit S3 bereitgestellt. Wir haben außerdem einige zusätzliche Tipps für die Verwendung des SDK mit S3 in Laravel bereitgestellt. Indem Sie diese Richtlinien befolgen, können Sie sicherstellen, dass Ihre PHP-Anwendungen sicher, effizient und skalierbar sind.
Möchten Sie mehr über AWS und PHP erfahren? Schauen Sie sich unsere anderen Artikel zu DevOps Mind an.
Das obige ist der detaillierte Inhalt vonKonfigurieren von AWS SDK für PHP mit S3. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!