Mengelola izin akses bucket Amazon S3 dengan Versi 3 AWS SDK for PHP - AWS SDK for PHP

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

Mengelola izin akses bucket Amazon S3 dengan Versi 3 AWS SDK for PHP

Daftar kontrol akses (ACLs) adalah salah satu opsi kebijakan akses berbasis sumber daya yang dapat Anda gunakan untuk mengelola akses ke bucket dan objek Anda. Anda dapat menggunakan ACLs untuk memberikan izin baca/tulis dasar ke akun lain. AWS Untuk mempelajari lebih lanjut, lihat Mengelola Akses dengan ACLs.

Contoh berikut menunjukkan cara:

  • Dapatkan kebijakan kontrol akses untuk bucket yang digunakan GetBucketAcl.

  • Setel izin pada ember menggunakanACLs, menggunakan PutBucketAcl.

Semua kode contoh untuk AWS SDK for PHP tersedia di sini GitHub.

Kredensial

Sebelum menjalankan kode contoh, konfigurasikan AWS kredensil Anda, seperti yang dijelaskan dalam. Kredensial Kemudian impor AWS SDK for PHP, seperti yang dijelaskan dalamPenggunaan dasar.

Mendapatkan dan menetapkan kebijakan daftar kontrol akses

Impor

require 'vendor/autoload.php'; use Aws\S3\S3Client; use Aws\Exception\AwsException;

Kode Sampel

// Create a S3Client $s3Client = new S3Client([ 'profile' => 'default', 'region' => 'us-west-2', 'version' => '2006-03-01' ]); // Gets the access control policy for a bucket $bucket = 'amzn-s3-demo-bucket'; try { $resp = $s3Client->getBucketAcl([ 'Bucket' => $bucket ]); echo "Succeed in retrieving bucket ACL as follows: \n"; var_dump($resp); } catch (AwsException $e) { // output error message if fails echo $e->getMessage(); echo "\n"; } // Sets the permissions on a bucket using access control lists (ACL). $params = [ 'ACL' => 'public-read', 'AccessControlPolicy' => [ // Information can be retrieved from `getBucketAcl` response 'Grants' => [ [ 'Grantee' => [ 'DisplayName' => '<string>', 'EmailAddress' => '<string>', 'ID' => '<string>', 'Type' => 'CanonicalUser', 'URI' => '<string>', ], 'Permission' => 'FULL_CONTROL', ], // ... ], 'Owner' => [ 'DisplayName' => '<string>', 'ID' => '<string>', ], ], 'Bucket' => $bucket, ]; try { $resp = $s3Client->putBucketAcl($params); echo "Succeed in setting bucket ACL.\n"; } catch (AwsException $e) { // Display error message echo $e->getMessage(); echo "\n"; }