LoginSignup
4
3

More than 5 years have passed since last update.

AWS SDK for PHPのドキュメント(日本語)が一部誤ってるくさいので正しいやり方載せときますね

Last updated at Posted at 2018-03-09

やりたいこと

S3のバケットから複数のオブジェクトを削除したい by PHP

参照したドキュメント

これ↓
https://docs.aws.amazon.com/ja_jp/AmazonS3/latest/dev/DeletingMultipleObjectsUsingPHPSDK.html
→latestって書いてあるから多分古いドキュメントではないと思う。

やり方

ドキュメントに書いてあったやり方。

// ファイルのパスを取得して
$keys = $s3->listObjects(array('Bucket' => $bucket))
    ->getPath('Contents/*/Key');

// これで取得出来るらしい
$result = $s3->deleteObjects(array(
    'Bucket'  => $bucket,
    'Objects' => array_map(function ($key) {
        return array('Key' => $key);
    }, $keys),
));

やってみたけど、何度やっても引数間違ってんでオマー!って怒られる。。

エラーメッセージとソースコード見て原因探ってったら'Delete'ってゆーキーが必要だったらしい。

$s3->deleteObjects(array(
  'Bucket'  => $bucket,
  'Delete' => [
     'Objects' =>
         array_map(function ($key) {
             return array('Key' => $key);
         }, $keys)
  ]
));

ちなみに、上記の$keysはS3上のファイルパスの配列。

英語のドキュメントには'Delete'ってゆーキーがあった。

気をつけんとね。

4
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3