Chilkat
HOME
Android™
ASP
Visual Basic
VB.NET
C#
iOS (IPhone)
Objective-C
C++
C
MFC
Delphi
FoxPro
Java
Perl
PHP Extension
PHP ActiveX
Python
PowerShell
Ruby
SQL Server
VBScript
Amazon S3 - List BucketsDemonstrates how to send a GET request to the Amazon S3 service to list buckets.
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, CHILKATHTTPLib_TLB, CHILKATCRYPT2Lib_TLB, OleCtrls; ... procedure TForm1.Button1Click(Sender: TObject); var http: TChilkatHttp; success: Integer; curDateTime: String; strToSign: String; crypt: TChilkatCrypt2; 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; // 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(); ShowMessage(curDateTime); // The GET operation on the Service endpoint (s3.amazonaws.com) returns a list of all of the buckets owned by the authenticated sender of the request. strToSign := 'GET' + #10 + #10 + #10 + curDateTime + #10 + '/'; crypt := TChilkatCrypt2.Create(Self); success := crypt.UnlockComponent('Anything for 30-day trial.'); if (success <> 1) then begin ShowMessage(crypt.LastErrorText); Exit; end; // We want SHA1 for the HMAC hash algorithm: crypt.HashAlgorithm := 'sha1'; // These must be changed for your account: AWSAccessKeyId := '0PN5J17HBGZHT7JJ3X82'; AWSSecretAccessKey := 'uV3F3YluFJax1cknvbcGwgjvx4QpvB+leU8dUj2o'; // 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; http.SetRequestHeader('Authorization',authValue); http.SetRequestHeader('Date',curDateTime); xmlResponse := http.QuickGetStr('http://s3.amazonaws.com/'); if (xmlResponse = 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, show the XML response: Memo1.Lines.Add(xmlResponse); end; end; |
© 2000-2010 Chilkat Software, Inc. All Rights Reserved.