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 - Add Text Object to Bucket

This example writes some text and metadata into the "Neo" object in the "chilkat" bucket:

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

#  We'll need this for HMAC and MD5...
$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();

#  This is the content of the text object to be added to
#  the "chilkat" bucket:
$textData = "woah";

#  This is the name of the object to be added:
$objName = "Neo";

#  Calculate the MD5 hash of the object's content:
$crypt->put_HashAlgorithm("md5");
$crypt->put_EncodingMode("base64");
$crypt->put_Charset("windows-1252");
$md5Hash = $crypt->hashStringENC($textData);

#  Create the string to be signed.
#  IMPORTANT:
#  If a Content-MD5 header is added (see below), then
#  you also need to include the MD5 hash of the content
#  here.
#  The content-type (text/plain) must match the content-type
#  passed to the PutText method (below).
$strToSign = "PUT" . "\n" . $md5Hash . "\n" . "text/plain" . "\n" . $curDateTime . "\n" . "/chilkat/" . $objName;

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

#  These must be changed for your account:
$AWSAccessKeyId = "zzzzzzzzzzzzzzzzzzzz";
$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 used is specified in the Host header.
#  In this example, the object is added to the "chilkat" bucket:
$http->SetRequestHeader("Host","chilkat.s3.amazonaws.com");

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

#  Do not GZIP the request body.  To send a gzip compressed
#  object, simply set this to 1
$bGzip = 0;
#  Automatically add an MD5 hash of the request body in the HTTP header
#  (using the Content-MD5 header field).
$bMd5 = 1;

$url = "http://s3.amazonaws.com/" . $objName;

$strResponse = $http->putText($url,$textData,"windows-1252","text/plain",$bMd5,$bGzip);
if ($http->get_LastStatus() == 200) {

    print "Object added to bucket!" . "\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.