Rumah pembangunan bahagian belakang tutorial php Mengkonfigurasi AWS SDK untuk PHP dengan S3

Mengkonfigurasi AWS SDK untuk PHP dengan S3

Aug 26, 2024 am 06:30 AM

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.

Configuring AWS SDK for PHP with S3

Prasyarat

Sebelum kami bermula, pastikan anda mempunyai perkara berikut:

  • Akaun AWS
  • ID Kunci Akses AWS dan Kunci Akses Rahsia
  • PHP 5.6 atau lebih tinggi
  • Komposer dipasang

Pemasangan

Untuk memasang AWS SDK untuk PHP, anda boleh menggunakan Komposer. Jalankan arahan berikut dalam terminal anda:

composer require aws/aws-sdk-php
Salin selepas log masuk
Salin selepas log masuk

Arahan ini akan memasang versi terkini AWS SDK untuk PHP dalam projek anda.

Konfigurasi

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.

Fail Konfigurasi

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();
Salin selepas log masuk

Ganti YOUR_ACCESS_KEY_ID dan YOUR_SECRET_ACCESS_KEY dengan ID Kunci Akses AWS dan Kunci Akses Rahsia anda yang sebenar.

Pembolehubah Persekitaran

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
Salin selepas log masuk

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();
Salin selepas log masuk

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.

Penggunaan

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;
}
Salin selepas log masuk

Pasti, berikut ialah beberapa contoh tambahan dan amalan terbaik untuk menggunakan AWS SDK untuk PHP dengan S3.

Memuat naik Fail

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;
Salin selepas log masuk

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.

Memuat turun Fail

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;
Salin selepas log masuk

Kod ini akan memuat turun fail dengan kekunci my-file.txt daripada baldi baldi saya dan menyimpannya ke /path/to/downloaded-file.txt.

Menyenaraikan Objek

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;
}
Salin selepas log masuk

Kod ini akan menyenaraikan semua objek dalam baldi baldi saya dan mencetak kuncinya.

Amalan Terbaik - AWS SDK + PHP + S3

Berikut ialah beberapa amalan terbaik yang perlu diingat apabila menggunakan AWS SDK untuk PHP dengan S3:

  • Gunakan peranan dan dasar IAM untuk mengurus akses kepada sumber S3 anda.
  • Gunakan versi untuk menyimpan berbilang versi objek anda dan melindungi daripada pemadaman tidak sengaja.
  • Gunakan dasar kitaran hayat untuk mengurus storan dan pengekalan objek anda secara automatik.
  • Gunakan pecutan pemindahan untuk meningkatkan prestasi muat naik dan muat turun anda.
  • Gunakan penyulitan sebelah pelayan untuk melindungi data anda dalam keadaan rehat.
  • Gunakan pemberitahuan acara untuk mencetuskan tindakan berdasarkan perubahan pada objek S3 anda.

Pasti, berikut ialah beberapa petua tambahan untuk menggunakan AWS SDK untuk PHP dengan S3 dalam Laravel.

Menggunakan AWS SDK untuk PHP dengan 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:

  • Pasang pakej AWS SDK untuk PHP melalui Komposer:
composer require aws/aws-sdk-php
Salin selepas log masuk
Salin selepas log masuk
  • Konfigurasikan bukti kelayakan AWS anda dalam fail .env anda:
AWS_ACCESS_KEY_ID=your_access_key_id
AWS_SECRET_ACCESS_KEY=your_secret_access_key
AWS_DEFAULT_REGION=your_region
Salin selepas log masuk
  • Gunakan fasad Storan untuk berinteraksi dengan S3:
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;
}
Salin selepas log masuk
  • Gunakan penyesuai Flysystem Laravel untuk menyesuaikan gelagat fasad Storan:
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')
            );
        });
    }
}
Salin selepas log masuk
  • Gunakan sistem baris gilir Laravel untuk melaksanakan operasi S3 secara tidak segerak:
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));
    }
}
Salin selepas log masuk

Amalan Terbaik - AWS SDK + PHP + Laravel

Berikut ialah beberapa amalan terbaik yang perlu diingat apabila menggunakan AWS SDK untuk PHP dengan S3 dalam Laravel:

  • Gunakan sokongan terbina dalam Laravel untuk AWS SDK untuk PHP untuk memudahkan kod anda dan mengurangkan jumlah kod boilerplate yang anda perlu tulis.
  • Gunakan sistem baris gilir Laravel untuk melaksanakan operasi S3 secara tidak segerak, yang boleh meningkatkan prestasi dan kebolehskalaan aplikasi Laravel anda.
  • Gunakan penyesuai Flysystem Laravel untuk menyesuaikan gelagat fasad Storan dan untuk menyepadukan S3 dengan ciri Laravel lain, seperti sistem cache Laravel.
  • Gunakan sistem baris gilir Laravel untuk melaksanakan operasi S3 secara tidak segerak, yang boleh meningkatkan prestasi dan kebolehskalaan aplikasi Laravel anda.
  • Gunakan ciri penyulitan Laravel untuk menyulitkan data sensitif sebelum menyimpannya dalam S3.
  • Gunakan ciri pengelogan Laravel untuk log sebarang ralat atau pengecualian yang berlaku apabila menggunakan AWS SDK untuk PHP dengan S3.

Kesimpulan

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!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

<🎜>: Bubble Gum Simulator Infinity - Cara Mendapatkan dan Menggunakan Kekunci Diraja
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Nordhold: Sistem Fusion, dijelaskan
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Mandragora: Whispers of the Witch Tree - Cara Membuka Kunci Cangkuk Bergelut
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Tutorial Java
1675
14
Tutorial PHP
1278
29
Tutorial C#
1257
24
Terangkan hashing kata laluan yang selamat di PHP (mis., Password_hash, password_verify). Mengapa tidak menggunakan MD5 atau SHA1? Terangkan hashing kata laluan yang selamat di PHP (mis., Password_hash, password_verify). Mengapa tidak menggunakan MD5 atau SHA1? Apr 17, 2025 am 12:06 AM

Dalam php, kata laluan_hash dan kata laluan 1) password_hash menjana hash yang mengandungi nilai garam untuk meningkatkan keselamatan. 2) Kata Laluan_verify Sahkan kata laluan dan pastikan keselamatan dengan membandingkan nilai hash. 3) MD5 dan SHA1 terdedah dan kekurangan nilai garam, dan tidak sesuai untuk keselamatan kata laluan moden.

Bagaimanakah jenis membayangkan jenis PHP, termasuk jenis skalar, jenis pulangan, jenis kesatuan, dan jenis yang boleh dibatalkan? Bagaimanakah jenis membayangkan jenis PHP, termasuk jenis skalar, jenis pulangan, jenis kesatuan, dan jenis yang boleh dibatalkan? Apr 17, 2025 am 12:25 AM

Jenis PHP meminta untuk meningkatkan kualiti kod dan kebolehbacaan. 1) Petua Jenis Skalar: Oleh kerana Php7.0, jenis data asas dibenarkan untuk ditentukan dalam parameter fungsi, seperti INT, Float, dan lain -lain. 2) Return Type Prompt: Pastikan konsistensi jenis nilai pulangan fungsi. 3) Jenis Kesatuan Prompt: Oleh kerana Php8.0, pelbagai jenis dibenarkan untuk ditentukan dalam parameter fungsi atau nilai pulangan. 4) Prompt jenis yang boleh dibatalkan: membolehkan untuk memasukkan nilai null dan mengendalikan fungsi yang boleh mengembalikan nilai null.

PHP dan Python: Paradigma yang berbeza dijelaskan PHP dan Python: Paradigma yang berbeza dijelaskan Apr 18, 2025 am 12:26 AM

PHP terutamanya pengaturcaraan prosedur, tetapi juga menyokong pengaturcaraan berorientasikan objek (OOP); Python menyokong pelbagai paradigma, termasuk pengaturcaraan OOP, fungsional dan prosedur. PHP sesuai untuk pembangunan web, dan Python sesuai untuk pelbagai aplikasi seperti analisis data dan pembelajaran mesin.

Bagaimana anda menghalang suntikan SQL di PHP? (Penyataan yang disediakan, PDO) Bagaimana anda menghalang suntikan SQL di PHP? (Penyataan yang disediakan, PDO) Apr 15, 2025 am 12:15 AM

Menggunakan penyataan preprocessing dan PDO dalam PHP secara berkesan dapat mencegah serangan suntikan SQL. 1) Gunakan PDO untuk menyambung ke pangkalan data dan tetapkan mod ralat. 2) Buat kenyataan pra -proses melalui kaedah menyediakan dan lulus data menggunakan ruang letak dan laksanakan kaedah. 3) Hasil pertanyaan proses dan pastikan keselamatan dan prestasi kod.

PHP dan Python: Contoh dan perbandingan kod PHP dan Python: Contoh dan perbandingan kod Apr 15, 2025 am 12:07 AM

PHP dan Python mempunyai kelebihan dan kekurangan mereka sendiri, dan pilihannya bergantung kepada keperluan projek dan keutamaan peribadi. 1.PHP sesuai untuk pembangunan pesat dan penyelenggaraan aplikasi web berskala besar. 2. Python menguasai bidang sains data dan pembelajaran mesin.

PHP: Pengendalian pangkalan data dan logik sisi pelayan PHP: Pengendalian pangkalan data dan logik sisi pelayan Apr 15, 2025 am 12:15 AM

PHP menggunakan sambungan MySQLI dan PDO untuk berinteraksi dalam operasi pangkalan data dan pemprosesan logik sisi pelayan, dan memproses logik sisi pelayan melalui fungsi seperti pengurusan sesi. 1) Gunakan MySQLI atau PDO untuk menyambung ke pangkalan data dan laksanakan pertanyaan SQL. 2) Mengendalikan permintaan HTTP dan status pengguna melalui pengurusan sesi dan fungsi lain. 3) Gunakan urus niaga untuk memastikan atomik operasi pangkalan data. 4) Mencegah suntikan SQL, gunakan pengendalian pengecualian dan sambungan penutup untuk debugging. 5) Mengoptimumkan prestasi melalui pengindeksan dan cache, tulis kod yang sangat mudah dibaca dan lakukan pengendalian ralat.

Tujuan PHP: Membina Laman Web Dinamik Tujuan PHP: Membina Laman Web Dinamik Apr 15, 2025 am 12:18 AM

PHP digunakan untuk membina laman web dinamik, dan fungsi terasnya termasuk: 1. Menjana kandungan dinamik dan menghasilkan laman web secara real time dengan menyambung dengan pangkalan data; 2. Proses Interaksi Pengguna dan Penyerahan Bentuk, Sahkan Input dan Menanggapi Operasi; 3. Menguruskan sesi dan pengesahan pengguna untuk memberikan pengalaman yang diperibadikan; 4. Mengoptimumkan prestasi dan ikuti amalan terbaik untuk meningkatkan kecekapan dan keselamatan laman web.

Memilih antara php dan python: panduan Memilih antara php dan python: panduan Apr 18, 2025 am 12:24 AM

PHP sesuai untuk pembangunan web dan prototaip pesat, dan Python sesuai untuk sains data dan pembelajaran mesin. 1.Php digunakan untuk pembangunan web dinamik, dengan sintaks mudah dan sesuai untuk pembangunan pesat. 2. Python mempunyai sintaks ringkas, sesuai untuk pelbagai bidang, dan mempunyai ekosistem perpustakaan yang kuat.

See all articles