2017-01-05 14 views
0

オブジェクトを削除しようとしています。すべてのオブジェクトが削除されたら、メインフォルダを削除します。Amazon S3はPHPから空のフォルダを削除します

現在、フォルダ内のオブジェクトキーを削除したときにその作業が正常に行われ、フォルダが空の場合はフォルダが削除されますが、(folder1/folder2 /)やfolder1のような最後のメインフォルダ空のfolder2を削除した後、このフォルダを削除できません。

私のPHPコードはこのように見えます。

$s3 = new S3Client([ 
    'version' => 'latest', 
     'region' => AMAZON_S3_REGION, 
     'credentials' => [ 
      'key' => AMAZON_KEY, 
      'secret' => AMAZON_SECRET 
     ] 
]); 

$response = $s3->listObjects([ 
    'Bucket' => AMAZON_S3_BUCKET, 
    'Prefix' => $prefix_dir 
]); 

$keys = []; 
foreach($response['Contents'] AS $val) { 
    $keys[]['Key'] = $val['Key']; 
} 

$result = $s3->deleteObjects([ 
    'Bucket' => AMAZON_S3_BUCKET, 
    'Objects' => $keys 
]); 

私がフォローした後にフォルダパスを単独で削除しようとすると、ステータスコード204が表示されるのはなぜですか?

答えて

1

deleteObjectsの代わりに、deleteMatchingObjectsを使用して、空のprefixまたは一部のフォルダに一致する文字列を渡してみてください。

$s3->deleteMatchingObjects($bucket); 
// or inner of folder 
$s3->deleteMatchingObjects($bucket, 'folder1/'); 
+0

lovly、ありがとうございます:)今はたくさんのコードを保存します。 – ParisNakitaKejser

関連する問題