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

Wasabi List Buckets

See more Wasabi Examples

Demonstrates how to list Wasabi buckets.

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.Xml,
  Chilkat.Http;

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

procedure RunDemo;
var
  success: Boolean;
  http: THttp;
  bucketsXml: string;
  xml: TXml;
  Name: string;
  CreationDate: string;
  ListAllMyBucketsResult_xmlns: string;
  ID: string;
  DisplayName: string;
  i: Integer;
  count_i: Integer;

begin
  success := False;

  //  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 := 'access-key';

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

  http.AwsEndpoint := 's3.wasabisys.com';

  bucketsXml := http.S3_ListBuckets();

  if (http.LastMethodSuccess <> True) then
    begin
      WriteLn(http.LastErrorText);
      Exit;
    end;

  xml := TXml.Create;
  xml.LoadXml(bucketsXml);
  WriteLn(xml.GetXml());

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

  //  Sample output:

  //  <?xml version="1.0" encoding="UTF-8"?>
  //  <ListAllMyBucketsResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
  //      <Owner>
  //          <ID>1039F31570DBC320E89D391632FCA06FE6D10CBB2ADBD0BF6439BB1DA0C3FAD6</ID>
  //          <DisplayName>admin</DisplayName>
  //      </Owner>
  //      <Buckets>
  //          <Bucket>
  //              <Name>chilkat</Name>
  //              <CreationDate>2021-10-26T12:39:44.000Z</CreationDate>
  //          </Bucket>
  //          <Bucket>
  //              <Name>chilkat-wasabi-testbucket</Name>
  //              <CreationDate>2021-10-27T21:07:40.000Z</CreationDate>
  //          </Bucket>
  //      </Buckets>
  //  </ListAllMyBucketsResult>

  ListAllMyBucketsResult_xmlns := xml.GetAttrValue('xmlns');
  ID := xml.GetChildContent('Owner|ID');
  DisplayName := xml.GetChildContent('Owner|DisplayName');
  i := 0;
  count_i := xml.NumChildrenHavingTag('Buckets|Bucket');
  while i < count_i do
    begin
      xml.I := i;
      Name := xml.GetChildContent('Buckets|Bucket[i]|Name');
      CreationDate := xml.GetChildContent('Buckets|Bucket[i]|CreationDate');
      i := i + 1;
    end;



  http.Free;
  xml.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.