2017-01-05 161 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