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 - Delete Bucket (REST API)

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

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;
crypt: TChilkatCrypt2;
curDateTime: String;
strToSign: String;
AWSAccessKeyId: String;
AWSSecretAccessKey: String;
signature: String;
authValue: String;
responseStr: String;
xml: CHILKATXMLLib_TLB.IChilkatXml;
endpoint: 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;

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

//  Delete the bucket named "chilkat3"
strToSign := 'DELETE' + #10 + #10 + #10 + curDateTime + #10 + '/chilkat3/';

//  We want SHA1 for the HMAC hash algorithm:
crypt.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.Charset := 'utf-8';

//  Indicate that Base64 output is desired:
crypt.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 = NULL ) then
  begin
    //  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 response string, and
    //  a response status of 204.
    if (http.LastStatus = 204) then
      begin
        ShowMessage('Bucket deleted!');

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

      end
    else
      begin

        //  Is this a temporary redirect?
        if (http.LastStatus = 307) then
          begin

            //  The new endpoint is in the XML contained within responseStr.
            xml := TChilkatXml.Create(Self).ControlInterface;
            xml.LoadXml(responseStr);
            endpoint := xml.GetChildContent('Endpoint');
            responseStr := http.QuickDeleteStr(endpoint);
            if (http.LastStatus = 204) then
              begin
                ShowMessage('Bucket deleted after redirect!');

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

              end
            else
              begin
                //  What happened???
                Memo1.Lines.Add('LastStatus: '
                     + IntToStr(http.LastStatus));
                Memo1.Lines.Add('---');
                Memo1.Lines.Add(responseStr);
                Memo1.Lines.Add('---');
                Memo1.Lines.Add(http.LastHeader);
                Memo1.Lines.Add('---');
                Memo1.Lines.Add(http.LastResponseHeader);
                Memo1.Lines.Add('---');
                Memo1.Lines.Add(http.LastErrorText);
              end;

          end
        else
          begin
            //  What response is this???
            Memo1.Lines.Add('LastStatus: ' + IntToStr(http.LastStatus));
            Memo1.Lines.Add('---');
            Memo1.Lines.Add(responseStr);
            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;
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