Professional Software Consulting

s3_fileDelete.php

Deletes an object (file) from a bucket.

Usage Statement
USAGE: s3_fileDelete.php -b <bucketName> -k <filekey> -a <accessKeyId> -s <secretKeyId>
        -b indicates the bucket name you want to delete a file from
        -k is the key to delete
        -a is the public AWS access key
        -s is the private AWS secret key


Sample Invokation
# php s3_fileDelete.php -b myBucket -k myFile.txt -a 9JDP49S2K26L99094NRY -s jLlLmjL2/pF91E8fknHCl8NGcrYAiNuept7W/93U


Source Code
<?php
/**
* Copyright (c) 2008, Corey's Consulting LLC.  All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* - Redistributions of source code must retain the above copyright notice,
*   this list of conditions and the following disclaimer.
* - Redistributions in binary form must reproduce the above copyright
*   notice, this list of conditions and the following disclaimer in the
*   documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*/

//
// Deletes a file/object from the bucket.
//
// ----------------------------------------------------------------------------
function printUsage($progName)
{
    echo "\n";
    echo " USAGE: $progName -b <bucketName> -k <filekey> -a <accessKeyId> -s <secretKeyId>\n";
    echo "\n";
    echo " -b indicates the bucket name you want to delete a file from\n";
    echo " -k is the key to delete\n";
    echo " -a is the public AWS access key\n";
    echo " -s is the private AWS secret key\n";
    echo "\n";
}


// ----------------------------------------------------------------------------
// MAIN     MAIN     MAIN     MAIN     MAIN     MAIN     MAIN     MAIN     MAIN
// ----------------------------------------------------------------------------
for (;;)    // enables a single exit point
{
    $retVal = 1;
    require_once("common.inc");
    require_once("S3.php");

    $key1 = '';
    $key2 = '';
    $cliArgs = parseCliArgs($argv);

    if ($argc == 1)
    {
        printUsage($argv[0]);
        break;
    }

    if (isset($cliArgs['a']))
    {
        $key1 = $cliArgs['a'];
    }
    else
    {
        echo "\n ERROR: access key not provided\n";
        printUsage($argv[0]);
        break;
    }

    if (isset($cliArgs['s']))
    {
        $key2 = $cliArgs['s'];
    }
    else
    {
        echo "\n ERROR: secret key not provided\n";
        printUsage($argv[0]);
        break;
    }


    if (!isset($cliArgs['b']))
    {
        echo "\n ERROR: Bucket name not provided\n";
        printUsage($argv[0]);
        break;
    }

    if (!isset($cliArgs['k']))
    {
        echo "\n ERROR: Key not provided\n";
        printUsage($argv[0]);
        break;
    }

    if (strlen($key1) == 0 || strlen($key2) == 0)
    {
        printUsage($argv[0]);
        break;
    }

    $bucketName = $cliArgs['b'];
    $keyName = $cliArgs['k'];


    $s3 = new S3($key1, $key2);

    if (!$s3->deleteObject($bucketName, $keyName))
    {
        echo " ERROR CODE: ".$s3->err_code."\n";
        echo " ERROR MESSAGE: ".$s3->err_message."\n";
        break;
    }

    $retVal = 0;

    break;    // always break

}    // end single-exit-point loop

exit ($retVal);

?>

     Contact Us     

Something wrong with this page or this site? Let the webmaster know by clicking HERE
This website designed, implemented, and maintained by Corey Dulecki
© 2009-2012, Corey's Consulting LLC