Sample code for 30+ languages & platforms
Pascal (Lazarus/Delphi)

Using an S3 Compatible Storage Provider

See more Amazon S3 Examples

Demonstrates how to use a compatible S3 storage provider. This example retrieves the XML listing the buckets for an Amazon S3 account.

In all cases, follow the Amazon S3 examples, except specify the AwsEndpoint for your S3 compatible storage provider.

Chilkat Pascal (Lazarus/Delphi) Downloads

Pascal (Lazarus/Delphi)
program ChilkatDemo;

// Demonstrates using the Chilkat Pascal wrapper via the C bridge DLL.
// Builds as a console application under Lazarus (FPC) or Delphi.

{$IFDEF FPC}
  {$MODE DELPHI}
{$ENDIF}
{$APPTYPE CONSOLE}

uses
  {$IFDEF UNIX}
  cthreads,
  {$ENDIF}
  SysUtils,
  CkDllLoader,
  Chilkat.Http;

// ---------------------------------------------------------------------------

procedure RunDemo;
var
  http: THttp;
  xmlStr: string;

begin
  //  This example requires the Chilkat API to have been previously unlocked.
  //  See Global Unlock Sample for sample code.

  http := THttp.Create;

  //  Insert your access key here:
  http.AwsAccessKey := 'AWS_ACCESS_KEY';

  //  Insert your secret key here:
  http.AwsSecretKey := 'AWS_SECRET_KEY';

  //  Set the AwsEndpoint to your S3 compatible storage provider
  //  This example uses basefarm.net
  http.AwsEndpoint := 'basefarm.bf.object.osl.basefarm.net';

  xmlStr := http.S3_ListBuckets();

  if (http.LastMethodSuccess <> True) then
    begin
      //  Failed
      WriteLn(http.LastErrorText);
    end
  else
    begin
      //  Success.  Show the XML response.  (Use the online tool at the link below to generate parsing code.)
      WriteLn(xmlStr);
    end;

  //  Use this online tool to generate parsing code from sample XML: 
  //  Generate Parsing Code from XML


  http.Free;

end;

// ---------------------------------------------------------------------------

begin

  try
    RunDemo;
  except
    on E: Exception do
      WriteLn('Unhandled exception: ', E.ClassName, ': ', E.Message);
  end;

  WriteLn;
  {$IFDEF MSWINDOWS}
  WriteLn('Press Enter to exit...');
  ReadLn;
  {$ENDIF}
end.