Programming Examples

ChilkatHOMEASPVisual BasicVB.NETC#CC++MFCDelphiFoxProJavaPerlPythonRubySQL ServerVBScript

PHP Examples

Bounced Mail
Bz2
Certificates/Keys
Charset
CSV
Diffie-Hellman
DSA
Email Object
Encryption
FileAccess
FTP
HTML-to-XML
HTTP
IMAP
MHT / HTML Email
MIME
POP3
RSA
SMTP
Socket
Spider
SSH Key
SSH
SSH Tunnel
SFTP
Tar
Upload
XML
Zip


 

 

 

 

 

 

 

 

Amazon S3 - Add Text Object to Bucket

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

Download Chilkat Crypt ActiveX

Download Chilkat HTTP ActiveX

<?php

$http = new COM("Chilkat.Http");
$success = $http->UnlockComponent('Anything for 30-day trial.');
if ($success != true) {
    //  Unlock failed.
    print $http->lastErrorText() . "\n";
    exit;
}

//  We'll need this for HMAC and MD5...
$crypt = new COM("Chilkat.Crypt2");

$success = $crypt->UnlockComponent('Anything for 30-day trial.');
if ($success != true) {
    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->HashAlgorithm = 'md5';
$crypt->EncodingMode = 'base64';
$crypt->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->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->Charset = 'utf-8';

//  Indicate that Base64 output is desired:
$crypt->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 = false;
//  Automatically add an MD5 hash of the request body in the HTTP header
//  (using the Content-MD5 header field).
$bMd5 = true;

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

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

    print 'Object added to bucket!' . "\n";

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

}
else {

    //  Failed.  Show the last request header, response header,
    //  and response body.
    print $http->lastHeader() . "\n";
    print '---' . "\n";
    print $http->lastResponseHeader() . "\n";
    print '---' . "\n";
    print $http->lastErrorText() . "\n";

}

?>

Need a specific example? Send a request to support@chilkatsoft.com

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