Amazon S3 SDK: List objects

Shows an example of listing objects to help developers overcome an issue with interoperability until it's fixed.

Code sample

Go

For more information, see the Cloud Storage Go API reference documentation .

To authenticate to Cloud Storage, set up Application Default Credentials. For more information, see Set up authentication for client libraries .

  import 
  
 ( 
  
 "context" 
  
 "fmt" 
  
 "io" 
  
 "github.com/aws/aws-sdk-go/aws" 
  
 "github.com/aws/aws-sdk-go/aws/credentials" 
  
 "github.com/aws/aws-sdk-go/aws/session" 
  
 "github.com/aws/aws-sdk-go/service/s3" 
 ) 
 func 
  
 listGCSObjects 
 ( 
 w 
  
 io 
 . 
 Writer 
 , 
  
 bucketName 
  
 string 
 , 
  
 googleAccessKeyID 
  
 string 
 , 
  
 googleAccessKeySecret 
  
 string 
 ) 
  
 error 
  
 { 
  
 // bucketName := "your-gcs-bucket-name" 
  
 // googleAccessKeyID := "Your Google Access Key ID" 
  
 // googleAccessKeySecret := "Your Google Access Key Secret" 
  
 // Create a new client and do the following: 
  
 // 1. Change the endpoint URL to use the Google Cloud Storage XML API endpoint. 
  
 // 2. Use Cloud Storage HMAC Credentials. 
  
 sess 
  
 := 
  
 session 
 . 
 Must 
 ( 
 session 
 . 
 NewSession 
 ( 
& aws 
 . 
 Config 
 { 
  
 Region 
 : 
  
 aws 
 . 
 String 
 ( 
 "auto" 
 ), 
  
 Endpoint 
 : 
  
 aws 
 . 
 String 
 ( 
 "https://storage.googleapis.com" 
 ), 
  
 Credentials 
 : 
  
 credentials 
 . 
 NewStaticCredentials 
 ( 
 googleAccessKeyID 
 , 
  
 googleAccessKeySecret 
 , 
  
 "" 
 ), 
  
 })) 
  
 client 
  
 := 
  
 s3 
 . 
 New 
 ( 
 sess 
 ) 
  
 ctx 
  
 := 
  
 context 
 . 
 Background 
 () 
  
 result 
 , 
  
 err 
  
 := 
  
 client 
 . 
 ListObjectsWithContext 
 ( 
 ctx 
 , 
  
& s3 
 . 
 ListObjectsInput 
 { 
  
 Bucket 
 : 
  
 aws 
 . 
 String 
 ( 
 bucketName 
 ), 
  
 }) 
  
 if 
  
 err 
  
 != 
  
 nil 
  
 { 
  
 return 
  
 fmt 
 . 
 Errorf 
 ( 
 "ListObjectsWithContext: %w" 
 , 
  
 err 
 ) 
  
 } 
  
 fmt 
 . 
 Fprintf 
 ( 
 w 
 , 
  
 "Objects:" 
 ) 
  
 for 
  
 _ 
 , 
  
 o 
  
 := 
  
 range 
  
 result 
 . 
 Contents 
  
 { 
  
 fmt 
 . 
 Fprintf 
 ( 
 w 
 , 
  
 "%s\n" 
 , 
  
 aws 
 . 
 StringValue 
 ( 
 o 
 . 
 Key 
 )) 
  
 } 
  
 return 
  
 nil 
 } 
 

Java

For more information, see the Cloud Storage Java API reference documentation .

To authenticate to Cloud Storage, set up Application Default Credentials. For more information, see Set up authentication for client libraries .

  import 
  
 com.amazonaws.auth.AWSStaticCredentialsProvider 
 ; 
 import 
  
 com.amazonaws.auth.BasicAWSCredentials 
 ; 
 import 
  
 com.amazonaws.client.builder.AwsClientBuilder 
 ; 
 import 
  
 com.amazonaws.services.s3.AmazonS3 
 ; 
 import 
  
 com.amazonaws.services.s3.AmazonS3ClientBuilder 
 ; 
 import 
  
 com.amazonaws.services.s3.model.ObjectListing 
 ; 
 import 
  
 com.amazonaws.services.s3.model.S3ObjectSummary 
 ; 
 public 
  
 class 
 ListGcsObjects 
  
 { 
  
 public 
  
 static 
  
 void 
  
 listGcsObjects 
 ( 
  
 String 
  
 googleAccessKeyId 
 , 
  
 String 
  
 googleAccessKeySecret 
 , 
  
 String 
  
 bucketName 
 ) 
  
 { 
  
 // String googleAccessKeyId = "your-google-access-key-id"; 
  
 // String googleAccessKeySecret = "your-google-access-key-secret"; 
  
 // String bucketName = "bucket-name"; 
  
 // Create a BasicAWSCredentials using Cloud Storage HMAC credentials. 
  
 BasicAWSCredentials 
  
 googleCreds 
  
 = 
  
 new 
  
 BasicAWSCredentials 
 ( 
 googleAccessKeyId 
 , 
  
 googleAccessKeySecret 
 ); 
  
 // Create a new client and do the following: 
  
 // 1. Change the endpoint URL to use the Google Cloud Storage XML API endpoint. 
  
 // 2. Use Cloud Storage HMAC Credentials. 
  
 AmazonS3 
  
 interopClient 
  
 = 
  
 AmazonS3ClientBuilder 
 . 
 standard 
 () 
  
 . 
 withEndpointConfiguration 
 ( 
  
 new 
  
 AwsClientBuilder 
 . 
 EndpointConfiguration 
 ( 
  
 "https://storage.googleapis.com" 
 , 
  
 "auto" 
 )) 
  
 . 
 withCredentials 
 ( 
 new 
  
 AWSStaticCredentialsProvider 
 ( 
 googleCreds 
 )) 
  
 . 
 build 
 (); 
  
 // Call GCS to list current objects 
  
 ObjectListing 
  
 objects 
  
 = 
  
 interopClient 
 . 
 listObjects 
 ( 
 bucketName 
 ); 
  
 // Print objects names 
  
 System 
 . 
 out 
 . 
 println 
 ( 
 "Objects:" 
 ); 
  
 for 
  
 ( 
 S3ObjectSummary 
  
 object 
  
 : 
  
 objects 
 . 
 getObjectSummaries 
 ()) 
  
 { 
  
 System 
 . 
 out 
 . 
 println 
 ( 
 object 
 . 
 getKey 
 ()); 
  
 } 
  
 // Explicitly clean up client resources. 
  
 interopClient 
 . 
 shutdown 
 (); 
  
 } 
 } 
 

Python

For more information, see the Cloud Storage Python API reference documentation .

To authenticate to Cloud Storage, set up Application Default Credentials. For more information, see Set up authentication for client libraries .

  import 
  
 boto3 
 # type: ignore 
 def 
  
 list_gcs_objects 
 ( 
 google_access_key_id 
 : 
 str 
 , 
 google_access_key_secret 
 : 
 str 
 , 
 bucket_name 
 : 
 str 
 ) 
 - 
> List 
 [ 
 str 
 ]: 
  
 """Lists all Cloud Storage objects using AWS SDK for Python (boto3) 
 Positional arguments: 
 google_access_key_id: hash-based message authentication code (HMAC) access ID 
 google_access_key_secret: HMAC access secret 
 bucket_name: name of Cloud Storage bucket 
 Returned value is a list of strings, one for each object in the bucket. 
 To use this sample: 
 1. Create a Cloud Storage HMAC key: https://cloud.google.com/storage/docs/authentication/managing-hmackeys#create 
 2. Change endpoint_url to a Google Cloud Storage XML API endpoint. 
 To learn more about HMAC: https://cloud.google.com/storage/docs/authentication/hmackeys#overview 
 """ 
 client 
 = 
 boto3 
 . 
 client 
 ( 
 "s3" 
 , 
 region_name 
 = 
 "auto" 
 , 
 endpoint_url 
 = 
 "https://storage.googleapis.com" 
 , 
 aws_access_key_id 
 = 
 google_access_key_id 
 , 
 aws_secret_access_key 
 = 
 google_access_key_secret 
 , 
 ) 
 # Call GCS to list objects in bucket_name 
 response 
 = 
 client 
 . 
 list_objects 
 ( 
 Bucket 
 = 
 bucket_name 
 ) 
 # Return list of object names in bucket 
 results 
 = 
 [] 
 for 
 blob 
 in 
 response 
 [ 
 "Contents" 
 ]: 
 results 
 . 
 append 
 ( 
 blob 
 [ 
 "Key" 
 ]) 
 print 
 ( 
 blob 
 [ 
 "Key" 
 ]) 
 # Can remove if not needed after development 
 return 
 results 
 

What's next

To search and filter code samples for other Google Cloud products, see the Google Cloud sample browser .

Create a Mobile Website
View Site in Mobile | Classic
Share by: