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 - Create Bucket with PUT Request

Demonstrates how to create an Amazon S3 bucket by sending a PUT HTTP request.

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

#  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();

print $curDateTime . "\n";

#  The PUT request operation with a bucket URI creates a new bucket.
$strToSign = "PUT" . "\n" . "\n" . "\n" . $curDateTime . "\n" . "/chilkat/";

$crypt = new chilkat::CkCrypt2();

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

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

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

#  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 created is specified in the Host header.
#  In this example, the "chilkat" bucket is created:
$http->SetRequestHeader("Host","chilkat.s3.amazonaws.com");

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

$xmlResponse = $http->quickPutStr("http://s3.amazonaws.com/");
if ($xmlResponse 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 xmlResponse string, and
    #  a response status of 200.
    if ($http->get_LastStatus() == 200) {
        print "Bucket created!" . "\n";

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

    }
    else {
        #  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.