|  | 
Chilkat  HOME  Android™  AutoIt  C  C#  C++  Chilkat2-Python  CkPython  Classic ASP  DataFlex  Delphi DLL  Go  Java  Node.js  Objective-C  PHP Extension  Perl  PowerBuilder  PowerShell  PureBasic  Ruby  SQL Server  Swift  Tcl  Unicode C  Unicode C++  VB.NET  VBScript  Visual Basic 6.0  Visual FoxPro  Xojo Plugin
| (Perl) S3 List Objects in Bucket FolderSee more Amazon S3 ExamplesDemonstrates how to retrieve the XML listing of the objects (i.e. files) stored in an Amazon S3 bucket, but just within a particular folder.Note: This example requires Chilkat v11.0.0 or greater. 
 use chilkat(); $success = 0; # This example assumes the Chilkat HTTP API to have been previously unlocked. # See Global Unlock Sample for sample code. # In Amazon S3 (Simple Storage Service), there is a distinction between buckets and folders, # which are both used for organizing and storing data. # Bucket: A bucket is the top-level container in Amazon S3. It is similar to a directory or folder # at the root level and acts as a unique namespace for your objects (files). Each bucket must have a globally # unique name across all of Amazon S3. Buckets are created at the AWS account level and are used to store objects. # Folder (Prefix): In Amazon S3, folders are not actual physical entities but are virtual constructs called prefixes. # They are part of the object keys used to organize and group objects within a bucket. Object keys are essentially the # full path or name of an object, including the folder structure. For example, if you have an object named # "my-image.jpg" inside a folder named "photos," the object key would be "photos/my-image.jpg." # Folders are helpful for organizing objects within a bucket and creating a hierarchical structure. # In reality, S3 does not have a true folder structure. It stores objects in a flat structure with unique keys. # However, the keys can include slashes ("/") to create a visual separation that resembles a folder structure. # Various tools and S3 clients interpret the slashes as folder separators and display them accordingly. $http = chilkat::CkHttp->new(); # Insert your access key here: $http->put_AwsAccessKey("AWS_ACCESS_KEY"); # Insert your secret key here: $http->put_AwsSecretKey("AWS_SECRET_KEY"); # ---------------------------------------------------------------------------------- # List the objects having prefix "images/" # ---------------------------------------------------------------------------------- $strXml = $http->s3_ListBucketObjects("chilkat100?prefix=images/"); if ($http->get_LastMethodSuccess() == 0) { print $http->lastErrorText() . "\r\n"; exit; } print "Response status code = " . $http->get_LastStatus() . "\r\n"; $xml = chilkat::CkXml->new(); $success = $xml->LoadXml($strXml); if ($success == 0) { print $xml->lastErrorText() . "\r\n"; exit; } # If the response status code was not 200, then the XML response is not a # listing of objects, but instead contains error information. if ($http->get_LastStatus() != 200) { print $xml->getXml() . "\r\n"; print "Failed." . "\r\n"; exit; } # A sample response is shown below. print $xml->getXml() . "\r\n"; print "----" . "\r\n"; # Use this online tool to generate parsing code from sample XML: # Generate Parsing Code from XML # Iterate over the bucket items and get information for each.. $numItems = $xml->NumChildrenHavingTag("Contents"); print "Number of bucket items = " . $numItems . "\r\n"; $dt = chilkat::CkDateTime->new(); $dtObj = chilkat::CkDtObj->new(); $i = 0; while ($i < $numItems) { $xml->put_I($i); $itemKey = $xml->getChildContent("Contents[i]|Key"); $itemSizeDecimalStr = $xml->getChildContent("Contents[i]|Size"); $lastModTimestamp = $xml->getChildContent("Contents[i]|LastModified"); $dt->SetFromRfc822($lastModTimestamp); # Get a local date/time. $bLocal = 1; $dt->ToDtObj($bLocal,$dtObj); print $i . ": " . $itemKey . ", " . $itemSizeDecimalStr . ", " . $dtObj->get_Day() . "-" . $dtObj->get_Month() . "-" . $dtObj->get_Year() . ":" . $dtObj->get_Hour() . ":" . $dtObj->get_Minute() . "\r\n"; $i = $i + 1; } # Sample output from the above loop: # 0: images/africa/, 0, 11-6-2020:20:18 # 1: images/africa/giraffe.jpg, 262769, 11-6-2020:20:20 # 2: images/africa/lion.jpg, 1026769, 11-6-2020:20:20 # 3: images/sea_creatures/starfish123.jpg, 6229, 19-1-2017:10:45 # 4: images/sea_creatures/starfish���.jpg, 6229, 19-1-2017:12:7 | ||||
© 2000-2025 Chilkat Software, Inc. All Rights Reserved.