Param
Param

Reputation: 21

How to delete folder from Amazon S3

I'm trying to delete the folder created in a bucket in Amazon S3 and it gives the error

An unexpected error has occurred. Please try again.

How can I delete the folder?

Upvotes: 1

Views: 2953

Answers (2)

NullPoiиteя
NullPoiиteя

Reputation: 57322

First you need to understand that there is nothing like folder in Amazon s3 bucket

what you see is object which behaves like folder

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

to delete folder you need to delete every object start with one/ and you can do that by deleteMatchingObjects() function

  $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);

I have used phpsdk v3

Upvotes: 5

Monish
Monish

Reputation: 622

I am using below code in s3.php class. check it out.

/**
* 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;
}

Upvotes: 0

Related Questions