2015-11-20 323 views
1

刪除文件夾我想刪除在亞馬遜S3水桶創建的文件夾,並給出了錯誤如何從亞馬遜S3

發生意外錯誤。請再試一次。

如何刪除文件夾?

+1

請發表您使用所以有人可以嘗試幫助你的代碼。 – Tristan

+0

Amazon S3中不存在文件夾,但可以創建一個零長度的對象作爲文件夾的「標記」。如果您可以提供您的代碼並顯示您收到錯誤的位置,我們將能夠提供一些建議。 –

+0

您在問題中提供的信息量無意義或不完整(禮貌) –

回答

0

我在s3.php類中使用下面的代碼。一探究竟。

/** 
* Delete an empty bucket 
* 
* @param string $bucket Bucket name 
* @return boolean 
*/ 
public function deleteBucket($bucket = '') { 
    $rest = new S3Request('DELETE', $bucket); 
    $rest = $rest->getResponse(); 
    if ($rest->error === false && $rest->code !== 204) 
     $rest->error = array('code' => $rest->code, 'message' => 'Unexpected HTTP status'); 
    if ($rest->error !== false) { 
     trigger_error(sprintf("S3::deleteBucket({$bucket}): [%s] %s", 
     $rest->error['code'], $rest->error['message']), E_USER_WARNING); 
     return false; 
    } 
    return true; 
} 
3

首先你要明白,有在亞馬遜S3存儲桶什麼文件夾

你看到的是什麼對象,它的行爲像文件夾

one/   // so what you see folder is this but its separate object 
one/abc.png 
one/tow/ 
one/tow/a.zip 

刪除文件夾中需要刪除每個對象,以one/開頭,您可以通過deleteMatchingObjects()功能

$s3 = new Aws\S3\S3Client([ 
     'version' => 'latest', 
     'region' => 'us-west-2', 
     'credentials.ini' => [ 
      'key' => $credentials['key'], 
      'secret' => $credentials['secret'], 
     ], 
    ]); 
/* this is what you need*/ 
$s3->deleteMatchingObjects($bucket, $obj); 

我用phpsdk V3