FAQ untukAWS SDK for PHP Versi 3 - AWS SDK for PHP

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

FAQ untukAWS SDK for PHP Versi 3

Metode apa yang tersedia pada klien?

AWS SDK for PHPMenggunakan deskripsi layanan dan metode magic __call () dinamis untuk mengeksekusi operasi API. Anda dapat menemukan daftar lengkap metode yang tersedia untuk klien layanan web dalam dokumentasi API klien.

Apa yang harus saya lakukan tentang kesalahan sertifikat SSL Curl?

Masalah ini dapat terjadi saat menggunakan bundelout-of-date CA dengan cURL dan SSL. Anda bisa mengatasi masalah ini dengan memperbarui bundel CA di server Anda atau mengunduh paketup-to-date CA lainnya dari situs web cURL secara langsung.

Secara default,AWS SDK for PHP akan menggunakan bundel CA yang dikonfigurasi ketika PHP dikompilasi. Anda dapat mengubah bundel CA default yang digunakan oleh PHP dengan memodifikasi pengaturan konfigurasiopenssl.cafile PHP .ini yang akan diatur ke jalur file CA pada disk.

Versi API apa yang tersedia untuk klien?

versionOpsi diperlukan saat membuat klien. Daftar versi API yang tersedia dapat ditemukan di setiap halaman dokumentasi API klien:aws-php-class:<index.html>. Jika Anda tidak dapat memuat versi API tertentu, Anda mungkin perlu memperbarui salinan fileAWS SDK for PHP.

Anda dapat memberikan stringlatest ke nilai konfigurasi “versi” untuk menggunakan versi API terbaru yang tersedia yang dapat ditemukan oleh penyedia API klien Anda (api_provider default akan memindaisrc/data direktori SDK untuk model API).

Awas

Kami tidak merekomendasikan penggunaanlatest dalam aplikasi produksi karena menarik SDK versi minor baru yang menyertakan pembaruan API dapat merusak aplikasi produksi Anda.

Versi Wilayah apa yang tersedia untuk klien?

Sebuahregion opsi diperlukan saat membuat klien, dan ditentukan menggunakan nilai string. Untuk daftarAWS Wilayah dan titik akhir yang tersedia, lihat AWSWilayah dan Titik Akhir di bagianReferensi Umum AWS.

// Set the Region to the EU (Frankfurt) Region. $s3 = new Aws\S3\S3Client([ 'region' => 'eu-central-1', 'version' => '2006-03-01' ]);

Mengapa saya tidak dapat mengunggah atau mengunduh file yang lebih besar dari 2 GB?

Karena tipe integer PHP ditandatangani, dan banyak platform menggunakan bilangan bulat 32-bit,AWS SDK for PHP tidak menangani file yang lebih besar dari 2 GB pada tumpukan 32-bit (di mana “stack” mencakup CPU, OS, server web, dan biner PHP). Ini adalah masalah PHP yang terkenal. Dalam kasus Microsoft Windows, hanya membangun PHP 7 mendukung bilangan bulat 64-bit.

Solusi yang disarankan adalah menggunakan tumpukan Linux 64-bit, seperti Amazon Linux AMI 64-bit, dengan versi PHP terbaru yang diinstal.

Untuk informasi selengkapnya, lihat PHP filesize: Return values.

Bagaimana saya bisa melihat data apa yang dikirim melalui kawat?

Anda bisa mendapatkan informasi debug, termasuk data yang dikirim melalui kawat, menggunakandebug opsi dalam konstruktor klien. Ketika opsi ini diatur ketrue, semua mutasi perintah yang dijalankan, permintaan yang dikirim, respons yang diterima, dan hasil yang sedang diproses dipancarkan ke STDOUT. Ini termasuk data yang dikirim dan diterima melalui kawat.

$s3Client = new Aws\S3\S3Client([ 'region' => 'us-standard', 'version' => '2006-03-01', 'debug' => true ]);

Bagaimana cara mengatur header arbitrer berdasarkan permintaan?

Anda dapat menambahkan header sewenang-wenang ke operasi layanan dengan menambahkan middleware kustom keAws\HandlerList dariAws\CommandInterface atauAws\ClientInterface. Contoh berikut menunjukkan cara menambahkanX-Foo-Baz header kePutObject operasi Amazon S3 tertentu menggunakan metodeAws\Middleware::mapRequest helper.

Lihat MapRequest untuk informasi lebih lanjut.

Bagaimana saya bisa menandatangani permintaan sewenang-wenang?

Anda dapat menandatangani permintaan sewenang-wenangaws-php-class:: PSR-7 <kelas-psr.http.message. RequestInterface.html> menggunakan kelas SDK:aws-php-class: signatureV4<class-Aws.Signature.SignatureV4.html>.

Lihat Menandatangani PermintaanCloudSearch Domain Amazon Kustom denganAWS SDK for PHP Versi 3 untuk contoh lengkap tentang cara melakukannya.

Bagaimana saya bisa memodifikasi perintah sebelum mengirimnya?

Anda dapat memodifikasi perintah sebelum mengirimnya dengan menambahkan middleware kustom keAws\HandlerList dariAws\CommandInterface atauAws\ClientInterface. Contoh berikut menunjukkan cara menambahkan parameter perintah kustom ke perintah sebelum dikirim, pada dasarnya menambahkan opsi default. Contoh ini menggunakan metodeAws\Middleware::mapCommand pembantu.

Lihat MapCommand untuk informasi lebih lanjut.

Apa ituCredentialsException?

Jika Anda melihatAws\Exception\CredentialsException beberapa saat menggunakanAWS SDK for PHP, itu berarti SDK tidak diberikan kredensyal apa pun dan tidak dapat menemukan kredensyal di lingkungan.

Jika Anda membuat instantiasi klien tanpa kredensyal, saat pertama kali Anda melakukan operasi layanan, SDK akan mencoba menemukan kredensyal. Ini pertama-tama memeriksa beberapa variabel lingkungan tertentu, kemudian mencari kredensyal profil instans, yang hanya tersedia pada instans Amazon EC2 yang dikonfigurasi. Jika sama sekali tidak ada mandat yang disediakan atau ditemukan, sebuahAws\Exception\CredentialsException dilemparkan.

Jika Anda melihat kesalahan ini dan ingin menggunakan kredensyal profil instans, Anda harus memastikan bahwa instans Amazon EC2 yang dijalankan SDK dikonfigurasi dengan peran IAM yang sesuai.

Jika Anda melihat kesalahan ini dan Anda tidak bermaksud menggunakan kredensyal profil instans, Anda harus memastikan bahwa Anda memberikan kredensyal dengan benar ke SDK.

Untuk informasi selengkapnya, lihat Kredensi untukAWS SDK for PHP Versi 3.

ApakahAWS SDK for PHP pekerjaan pada HHVM?

Saat iniAWS SDK for PHP tidak berjalan di HHVM, dan tidak akan mampu sampai masalah dengan semantik hasil di HHVM diselesaikan.

Bagaimana cara saya menonaktifkan SSL?

Anda dapat menonaktifkan SSL dengan menetapkanscheme parameter dalam metode pabrik klien untuk 'http'. Penting untuk dicatat bahwa tidak semua layanan mendukunghttp akses. Lihat AWSWilayah dan Titik Akhir diReferensi Umum AWS daftar wilayah, titik akhir, dan skema yang didukung.

$client = new Aws\DynamoDb\DynamoDbClient([ 'version' => '2012-08-10', 'region' => 'us-west-2', 'scheme' => 'http' ]);
Awas

Karena SSL mengharuskan semua data untuk dienkripsi dan membutuhkan lebih banyak paket TCP untuk menyelesaikan jabat tangan koneksi daripada hanya TCP, menonaktifkan SSL dapat memberikan peningkatan kinerja yang kecil. Namun, dengan SSL dinonaktifkan, semua data dikirim melalui kawat tidak terenkripsi. Sebelum menonaktifkan SSL, Anda harus mempertimbangkan dengan cermat implikasi keamanan dan potensi untuk menguping melalui jaringan.

Apa yang harus saya lakukan tentang “Parse error”?

Mesin PHP akan melempar kesalahan parsing ketika bertemu sintaks itu tidak mengerti. Hal ini hampir selalu ditemui ketika mencoba untuk menjalankan kode yang ditulis untuk versi PHP yang berbeda.

Jika Anda mengalami kesalahan penguraian, periksa sistem Anda dan pastikan itu memenuhi Persyaratan dan Rekomendasi SDK untukAWS SDK for PHP Versi 3.

Mengapa klien Amazon S3 mendekompresi file gzip?

Beberapa penangan HTTP, termasuk handler HTTP Guzzle 6 default, akan mengembang badan respons terkompresi secara default. Anda dapat menimpa perilaku ini dengan mengatur opsi HTTP decode_content kefalse. Untuk alasan kompatibilitas mundur, default ini tidak dapat diubah, tetapi kami sarankan Anda menonaktifkan decoding konten di tingkat klien S3.

Lihat decode_content untuk contoh cara menonaktifkan decoding konten otomatis.

Bagaimana cara menonaktifkan penandatanganan badan di Amazon S3?

Anda dapat menonaktifkan penandatanganan tubuh dengan mengaturContentSHA256 parameter di objek perintah keAws\Signature\S3SignatureV4::UNSIGNED_PAYLOAD. KemudianAWS SDK for PHP akan menggunakannya sebagai header 'x-amz-content-sha-256' dan checksum tubuh dalam permintaan kanonik.

$s3Client = new Aws\S3\S3Client([ 'version' => '2006-03-01', 'region' => 'us-standard' ]); $params = [ 'Bucket' => 'foo', 'Key' => 'baz', 'ContentSHA256' => Aws\Signature\S3SignatureV4::UNSIGNED_PAYLOAD ]; // Using operation methods creates command implicitly $result = $s3Client->putObject($params); // Using commands explicitly. $command = $s3Client->getCommand('PutObject', $params); $result = $s3Client->execute($command);

Bagaimana skema coba lagi ditangani diAWS SDK for PHP?

AWS SDK for PHPMemilikiRetryMiddleware yang menangani perilaku coba lagi. Dalam hal kode status HTTP 5xx untuk kesalahan server, SDK mencoba ulang pada 500, 502, 503 dan 504.

Pengecualian throttling, termasukRequestLimitExceededThrottling,ProvisionedThroughputExceededException,ThrottlingException,BandwidthLimitExceeded,RequestThrottled dan, juga ditangani dengan percobaan ulang.

AWS SDK for PHPJuga mengintegrasikan penundaan eksponensial dengan algoritma backoff dan jitter dalam skema coba lagi. Selain itu, perilaku percobaan ulang default dikonfigurasi3 untuk semua layanan kecuali Amazon DynamoDB, yaitu10.

Bagaimana cara menangani pengecualian dengan kode kesalahan?

SelainException kelasAWS SDK for PHP -customized, setiap klienAWS layanan memiliki kelas pengecualian sendiri yang mewarisi dari AwsExceptionAwsException. Anda dapat menentukan jenis kesalahan yang lebih spesifik untuk catch dengan kesalahan khusus API yang tercantum di bawahErrors bagian dari setiap metode.

Informasi kode kesalahan tersedia dengan getAwsErrorKode () dariAws\Exception\AwsException.

$sns = new \Aws\Sns\SnsClient([ 'region' => 'us-west-2', 'version' => 'latest', ]); try { $sns->publish([ // parameters ... ]); // Do something } catch (SnsException $e) { switch ($e->getAwsErrorCode()) { case 'EndpointDisabled': case 'NotFound': // Do something break; } }