Perl Examples

ChilkatHOMEAndroid™ASPVisual BasicVB.NETC#iOS (IPhone)Objective-CC++CMFCDelphiFoxProJavaPerl
PHP ExtensionPHP ActiveXPythonPowerShellRubySQL ServerVBScript

Perl Examples

Quick Start
Unicode
Byte Array
Bz2
Certificates
CSV
Email
Encryption
FTP
HTML Conversion
HTTP
IMAP
MHT
MIME
POP3
RSA
S/MIME
Signatures
SMTP
Socket / SSL
Spider
SFTP
SSH Key
SSH
SSH Tunnel
Tar
HTTP Upload
XML
XMP
Zip

More Examples...
String
Amazon S3
Email Object
DKIM / DomainKey
NTLM
FileAccess
RSS
Atom
Self-Extractor
Service
PPMD
Deflate
DH Key Exchange
DSA
Bzip2
LZW

 

 

 

 

 

 

 

Amazon S3 - Delete Bucket (REST API)

Deletes an Amazon S3 bucket using the REST API. This example deletes the bucket named "chilkat3".

 Chilkat Perl Module Downloads for Windows, Linux, and MAC OS X

use chilkat();

$http = new chilkat::CkHttp();
$success = $http->UnlockComponent("Anything for 30-day trial.");
if ($success != 1) {
    #  Unlock failed.
    print $http->lastErrorText() . "\n";
    exit;
}

$crypt = new chilkat::CkCrypt2();

$success = $crypt->UnlockComponent("Anything for 30-day trial.");
if ($success != 1) {
    print $crypt->lastErrorText() . "\n";
    exit;
}

#  The HTTP component now includes a method to generate
#  the current date/time in RFC 2616 compliant format.
#  Note: The GenTimeStamp method is available as a pre-release (as of 18-June-2008).
#  It will become available in the next new version dated after
#  18-June-2008.
$curDateTime = $http->genTimeStamp();

#  Delete the bucket named "chilkat3"
$strToSign = "DELETE" . "\n" . "\n" . "\n" . $curDateTime . "\n" . "/chilkat3/";

#  We want SHA1 for the HMAC hash algorithm:
$crypt->put_HashAlgorithm("sha1");

#  These must be changed for your account:
$AWSAccessKeyId = "zzzzzzzzzzzzzzzzzzzzz";
$AWSSecretAccessKey = "zzzzzzzzzzzzzzzzzzzzzzzzzzz";

#  Set the HMAC secret key:
$crypt->SetHmacKeyString($AWSSecretAccessKey);

#  By setting the charset = "utf-8", the string will be converted
#  to utf-8 (internal to the Chilkat component) prior to signing:
$crypt->put_Charset("utf-8");

#  Indicate that Base64 output is desired:
$crypt->put_EncodingMode("base64");

$signature = $crypt->hmacStringENC($strToSign);

$authValue = "AWS " . $AWSAccessKeyId . ":" . $signature;

#  The bucket to be deleted is specified in the Host header.
#  In this example, the "chilkat3" bucket is deleted
$http->SetRequestHeader("Host","chilkat3.s3.amazonaws.com");

$http->SetRequestHeader("Authorization",$authValue);
$http->SetRequestHeader("Date",$curDateTime);

#  Send the DELETE request.

$responseStr = $http->quickDeleteStr("http://s3.amazonaws.com/");

if ($responseStr eq null ) {
    #  Failed.  Show the last request header, response header,
    #  and response body.
    print $http->lastHeader() . "\r\n";
    print "---" . "\r\n";
    print $http->lastResponseHeader() . "\r\n";
    print "---" . "\r\n";
    print $http->lastErrorText() . "\r\n";
}
else {

    #  Success is indicated by an empty response string, and
    #  a response status of 204.
    if ($http->get_LastStatus() == 204) {
        print "Bucket deleted!" . "\n";

        #  Let's check out the response header anyway...
        print $http->lastResponseHeader() . "\r\n";

    }
    else {

        #  Is this a temporary redirect?
        if ($http->get_LastStatus() == 307) {

            #  The new endpoint is in the XML contained within responseStr.
            $xml = new chilkat::CkXml();
            $xml->LoadXml($responseStr);
            $endpoint = $xml->getChildContent("Endpoint");
            $responseStr = $http->quickDeleteStr($endpoint);
            if ($http->get_LastStatus() == 204) {
                print "Bucket deleted after redirect!" . "\n";

                #  Let's check out the response header anyway...
                print $http->lastResponseHeader() . "\r\n";

            }
            else {
                #  What happened???
                print "LastStatus: " . $http->get_LastStatus() . "\r\n";
                print "---" . "\r\n";
                print $responseStr . "\r\n";
                print "---" . "\r\n";
                print $http->lastHeader() . "\r\n";
                print "---" . "\r\n";
                print $http->lastResponseHeader() . "\r\n";
                print "---" . "\r\n";
                print $http->lastErrorText() . "\r\n";
            }

        }
        else {
            #  What response is this???
            print "LastStatus: " . $http->get_LastStatus() . "\r\n";
            print "---" . "\r\n";
            print $responseStr . "\r\n";
            print "---" . "\r\n";
            #  Failed.  Show the last request header, response header,
            #  and response body.
            print $http->lastHeader() . "\r\n";
            print "---" . "\r\n";
            print $http->lastResponseHeader() . "\r\n";
            print "---" . "\r\n";
            print $http->lastErrorText() . "\r\n";
        }

    }

}

 

© 2000-2010 Chilkat Software, Inc. All Rights Reserved.