Amazon AWS IOS SDK: How to list ALL file names in a FOLDER
amazon-s3, ios
Solution
Amazon S3 is a "flat" file system, meaning it does not have physical folders. "Folders" as you know are simply prefixes added to file names.
You need to set the `prefix` property to your request (see the documentation)
For example, given the following set of files:
folderName1/fileNameA.txt folderName1/fileNameB.txt folderName2/folderName3/fileNameC.txt
If you set `prefix` with `folderName1`, and your `delimiter` with `/`, you should get only the first two entries.
Last, but not least, leave your `bucketName` only with the bucket name :)
More info at the S3 Developer Guide.
Problem
I'm using AWS IOS SDK and trying to list all the files in a FOLDER. This code works to list all files etc in a BUCKET: ``` -(void) s3DirectoryListing: (NSString *) bucketName { s3Client = [[AmazonS3Client alloc] initWithAccessKey:ACCESS_KEY withSecretKey:SECRET_KEY]; @try { S3ListObjectsRequest *req = [[S3ListObjectsRequest alloc] initWithName:bucketName]; S3ListObjectsResponse *resp = [s3Client listObjects:req]; NSMutableArray* objectSummaries = resp.listObjectsResult.objectSummaries; for (int x = 0; x < [objectSummaries count]; x++) { NSLog(@"objectSummaries: %@",[objectSummaries objectAtIndex:x]); } } @catch (NSException *exception) { NSLog(@"Cannot list S3 %@",exception); } } ``` So if I pass a bucketName name, this works. However if I try and pass bucketName/folderName" I get an error message. This code doesn't seem to like the combination of bucket and folder path combinations. Any ideas appreciated.