Rumah >pembangunan bahagian belakang >tutorial php >Mengkonfigurasi AWS SDK untuk PHP dengan S3
Amazon Web Services (AWS) ialah platform berkuasa yang menawarkan pelbagai perkhidmatan untuk pembangun dan perniagaan. Antara perkhidmatan ini, Amazon Simple Storage Service (S3) adalah salah satu perkhidmatan yang paling popular dan digunakan secara meluas. Untuk berinteraksi dengan S3 secara pemrograman, anda boleh menggunakan AWS SDK untuk PHP. Dalam artikel ini, kami akan membimbing anda melalui proses mengkonfigurasi AWS SDK untuk PHP dengan S3.
Sebelum kami bermula, pastikan anda mempunyai perkara berikut:
Untuk memasang AWS SDK untuk PHP, anda boleh menggunakan Komposer. Jalankan arahan berikut dalam terminal anda:
composer require aws/aws-sdk-php
Arahan ini akan memasang versi terkini AWS SDK untuk PHP dalam projek anda.
Setelah anda memasang SDK, anda perlu mengkonfigurasinya dengan ID Kunci Akses AWS dan Kunci Akses Rahsia anda. Anda boleh melakukan ini dengan mencipta fail konfigurasi atau dengan menetapkan pembolehubah persekitaran.
Buat fail baharu bernama config.php dalam projek anda dan tambahkan kod berikut:
<?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();
Ganti YOUR_ACCESS_KEY_ID dan YOUR_SECRET_ACCESS_KEY dengan ID Kunci Akses AWS dan Kunci Akses Rahsia anda yang sebenar.
Sebagai alternatif, anda boleh menetapkan ID Kunci Akses AWS dan Kunci Akses Rahsia sebagai pembolehubah persekitaran:
export AWS_ACCESS_KEY_ID=YOUR_ACCESS_KEY_ID export AWS_SECRET_ACCESS_KEY=YOUR_SECRET_ACCESS_KEY
Kemudian, cipta klien S3 seperti berikut:
<?php require 'vendor/autoload.php'; use Aws\Sdk; $sdk = new Sdk([ 'region' => 'us-east-1', 'version' => 'latest', ]); $s3Client = $sdk->createS3();
Bersedia untuk mengetahui lebih lanjut tentang AWS dan PHP? Lihat artikel kami yang lain tentang AWS konfigurasi SSO dan Memperbaiki ralat kebenaran laravel yang ditolak.
Sekarang anda telah mengkonfigurasi AWS SDK untuk PHP dengan S3, anda boleh mula menggunakannya untuk berinteraksi dengan baldi S3 anda. Berikut ialah contoh cara menyenaraikan semua baldi dalam akaun anda:
$buckets = $s3Client->listBuckets(); foreach ($buckets['Buckets'] as $bucket) { echo $bucket['Name'] . PHP_EOL; }
Pasti, berikut ialah beberapa contoh tambahan dan amalan terbaik untuk menggunakan AWS SDK untuk PHP dengan S3.
Untuk memuat naik fail ke baldi S3, anda boleh menggunakan kaedah putObject. Berikut ialah contoh:
$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;
Kod ini akan memuat naik fail yang terletak di /path/to/my-file.txt ke baldi baldi saya dan mencetak URL fail yang dimuat naik.
Untuk memuat turun fail daripada baldi S3, anda boleh menggunakan kaedah getObject. Berikut ialah contoh:
$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;
Kod ini akan memuat turun fail dengan kekunci my-file.txt daripada baldi baldi saya dan menyimpannya ke /path/to/downloaded-file.txt.
Untuk menyenaraikan objek dalam baldi S3, anda boleh menggunakan kaedah listObjects. Berikut ialah contoh:
$bucketName = 'my-bucket'; $result = $s3Client->listObjects([ 'Bucket' => $bucketName, ]); foreach ($result['Contents'] as $object) { echo $object['Key'] . PHP_EOL; }
Kod ini akan menyenaraikan semua objek dalam baldi baldi saya dan mencetak kuncinya.
Berikut ialah beberapa amalan terbaik yang perlu diingat apabila menggunakan AWS SDK untuk PHP dengan S3:
Pasti, berikut ialah beberapa petua tambahan untuk menggunakan AWS SDK untuk PHP dengan S3 dalam Laravel.
Laravel mempunyai sokongan terbina dalam untuk AWS SDK untuk PHP, yang memudahkan penggunaan S3 dalam aplikasi Laravel anda. Berikut ialah beberapa petua untuk menggunakan SDK dengan 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)); } }
Berikut ialah beberapa amalan terbaik yang perlu diingat apabila menggunakan AWS SDK untuk PHP dengan S3 dalam Laravel:
Dalam artikel ini, kami telah membincangkan asas mengkonfigurasi AWS SDK untuk PHP dengan S3 dan menyediakan beberapa contoh tambahan dan amalan terbaik untuk menggunakan SDK dengan S3. Kami juga telah menyediakan beberapa petua tambahan untuk menggunakan SDK dengan S3 dalam Laravel. Dengan mengikuti garis panduan ini, anda boleh memastikan bahawa aplikasi PHP anda selamat, cekap dan berskala.
Ingin mengetahui lebih lanjut tentang AWS dan PHP? Lihat artikel kami yang lain tentang DevOps Mind.
Atas ialah kandungan terperinci Mengkonfigurasi AWS SDK untuk PHP dengan S3. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!