メニュー
Amazon Simple Storage Service
開発者ガイド (API バージョン 2006-03-01)

AWS SDK for PHP を使用した複数オブジェクトの削除

このトピックでは、バージョン 3 の AWS SDK for PHP のクラスを使用して、バージョニング対応および非対応の Amazon S3 バケットから複数のオブジェクトを削除する方法を示します。バージョニングの詳細については、「バージョニングの使用」を参照してください。

このトピックでは、既に AWS SDK for PHP の使用と PHP サンプルの実行 の説明が実行されていて、AWS SDK for PHP が正しくインストールされていることを前提としています。

例 バージョニング非対応のバケットからの複数オブジェクトの削除

以下の PHP の例では、deleteObjects() メソッドを使用して、バージョニング非対応のバケットから複数のオブジェクトを削除しています。

PHP 例の実行については、このガイド内の「PHP サンプルの実行」を参照してください。

<?php require 'vendor/autoload.php'; use Aws\S3\S3Client; $bucket = '*** Your Bucket Name ***'; $s3 = new S3Client([ 'version' => 'latest', 'region' => 'us-east-1' ]); // 1. Create a few objects. for ($i = 1; $i <= 3; $i++) { $s3->putObject([ 'Bucket' => $bucket, 'Key' => "key{$i}", 'Body' => "content {$i}", ]); } // 2. List the objects and get the keys. $keys = $s3->listObjects([ 'Bucket' => $bucket ]) ->getPath('Contents/*/Key'); // 3. Delete the objects. $s3->deleteObjects([ 'Bucket' => $bucket, 'Delete' => [ 'Objects' => array_map(function ($key) { return ['Key' => $key]; }, $keys) ], ]);

例 バージョニング対応バケットからの複数オブジェクトの削除

以下の PHP の例では、deleteObjects() メソッドを使用して、バージョニング対応のバケットから複数のオブジェクトを削除します。

PHP 例の実行については、このガイド内の「PHP サンプルの実行」を参照してください。

<?php require 'vendor/autoload.php'; use Aws\S3\S3Client; $bucket = '*** Your Bucket Name ***'; $keyname = '*** Your Object Key ***'; $s3 = new S3Client([ 'version' => 'latest', 'region' => 'us-east-1' ]); // 1. Enable object versioning for the bucket. $s3->putBucketVersioning([ 'Bucket' => $bucket, 'Status' => 'Enabled', ]); // 2. Create a few versions of an object. for ($i = 1; $i <= 3; $i++) { $s3->putObject([ 'Bucket' => $bucket, 'Key' => $keyname, 'Body' => "content {$i}", ]); } // 3. List the objects versions and get the keys and version IDs. $versions = $s3->listObjectVersions(['Bucket' => $bucket]) ->getPath('Versions'); // 4. Delete the object versions. $s3->deleteObjects([ 'Bucket' => $bucket, 'Delete' => [ 'Objects' => array_map(function ($version) { return [ 'Key' => $version['Key'], 'VersionId' => $version['VersionId'] }, $versions), ], ]); echo "The following objects were deleted successfully:". PHP_EOL; foreach ($result['Deleted'] as $object) { echo "Key: {$object['Key']}, VersionId: {$object['VersionId']}" . PHP_EOL; } echo PHP_EOL . "The following objects could not be deleted:" . PHP_EOL; foreach ($result['Errors'] as $object) { echo "Key: {$object['Key']}, VersionId: {$object['VersionId']}" . PHP_EOL; } // 5. Suspend object versioning for the bucket. $s3->putBucketVersioning([ 'Bucket' => $bucket, 'Status' => 'Suspended', ]);

関連リソース

このページの内容: