2015-11-20 325 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