Delphi Examples

ChilkatHOMEASPVisual BasicVB.NETC#Visual C++CMFCDelphiFoxProJavaPerlPHPPythonRubySQL ServerVBScript

Delphi Examples

Bounced Mail
Character Encoding
Digital Certificates
Digital Signatures
Email
FTP
HTML-to-XML
HTTP
IMAP
Encryption
MHT / HTML Email
RSA Encryption
S/MIME
Socket
Spider
String
Tar
Upload
XML
XMP
Zip Compression

More Examples...
Byte Array
Email Object
POP3
SMTP
RSS
Atom
Self-Extractor
Service
PPMD
Deflate
DH Key Exchange
DSA
SSH Key
SSH
SSH Tunnel
SFTP

Unreleased...
Bzip2
LZW
Bz2
Icon

Type Conversion

 

Article: Understanding COM References in Delphi

Amazon S3 - Create Bucket with Constraint

Create an Amazon S3 bucket with a constraint using the REST API.

Download Chilkat XML ActiveX

Download Chilkat Crypt ActiveX

Download Chilkat HTTP ActiveX

uses
    Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
    Dialogs, StdCtrls,
    CHILKATXMLLib_TLB,
    CHILKATHTTPLib_TLB,
    CHILKATCRYPT2Lib_TLB,
    OleCtrls;

...

procedure TForm1.Button1Click(Sender: TObject);
var
http: TChilkatHttp;
success: Integer;
xml: CHILKATXMLLib_TLB.IChilkatXml;
crypt: TChilkatCrypt2;
curDateTime: String;
strToSign: String;
AWSAccessKeyId: String;
AWSSecretAccessKey: String;
signature: String;
authValue: String;
xmlResponse: String;

begin
http := TChilkatHttp.Create(Self);
success := http.UnlockComponent('Anything for 30-day trial.');
if (success <> 1) then
  begin
    //  Unlock failed.
    ShowMessage(http.LastErrorText);
    Exit;
  end;

//  Create the XML contraint for the bucket:
//  <CreateBucketConfiguration>
//          <LocationConstraint>EU</LocationConstraint>
//  </CreateBucketConfiguration>
xml := TChilkatXml.Create(Self).ControlInterface;
xml.Tag := 'CreateBucketConfiguration';
xml.NewChild2('LocationConstraint','EU');
Memo1.Lines.Add(xml.GetXml());

crypt := TChilkatCrypt2.Create(Self);

success := crypt.UnlockComponent('Anything for 30-day trial.');
if (success <> 1) then
  begin
    ShowMessage(crypt.LastErrorText);
    Exit;
  end;

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

//  The PUT request operation with a bucket URI creates a new bucket.
strToSign := 'PUT' + #10 + #10 + 'text/xml' + #10 + curDateTime + #10 + '/chilkat2/';

//  We want SHA1 for the HMAC hash algorithm:
crypt.HashAlgorithm := 'sha1';

//  These must be changed for your account:
AWSAccessKeyId := 'zzzzzzzzzzzzzzzzzzzz';
AWSSecretAccessKey := 'zzzzzzzzzzzzzzzzzzzzzzzzzz';

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

http.SetRequestHeader('Authorization',authValue);
http.SetRequestHeader('Date',curDateTime);

xmlResponse := http.XmlRpcPut('http://s3.amazonaws.com/',xml.GetXml());
if (xmlResponse = NULL ) then
  begin
    Memo1.Lines.Add('NULL response');
    Memo1.Lines.Add('---');
    //  Failed.  Show the last request header, response header,
    //  and response body.
    Memo1.Lines.Add(http.LastHeader);
    Memo1.Lines.Add('---');
    Memo1.Lines.Add(http.LastResponseHeader);
    Memo1.Lines.Add('---');
    Memo1.Lines.Add(http.LastErrorText);
  end
else
  begin

    //  Success is indicated by an empty xmlResponse string, and
    //  a response status of 200.
    if (http.LastStatus = 200) then
      begin
        ShowMessage('Bucket created!');

        //  Let's check out the response header anyway...
        Memo1.Lines.Add(http.LastResponseHeader);

      end
    else
      begin
        Memo1.Lines.Add('LastStatus: ' + IntToStr(http.LastStatus));
        Memo1.Lines.Add('---');
        //  Failed.  Show the last request header, response header,
        //  and response body.
        Memo1.Lines.Add(http.LastHeader);
        Memo1.Lines.Add('---');
        Memo1.Lines.Add(http.LastResponseHeader);
        Memo1.Lines.Add('---');
        Memo1.Lines.Add(http.LastErrorText);
      end;

  end;
end;

 

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

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

Mail Component · .NET Email Component · XML Parser