Sample code for 30+ languages & platforms
Objective-C

Upload File with User-Defined Metadata

See more Amazon S3 Examples

Demonstrates how to upload a file with user-defined metadata to the Amazon S3 service.

Chilkat Objective-C Downloads

Objective-C
#import <CkoHttp.h>
#import <NSString.h>

BOOL success = NO;

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

CkoHttp *http = [[CkoHttp alloc] init];

// Insert your AWS keys here:
http.AwsAccessKey = @"AWS_ACCESS_KEY";
http.AwsSecretKey = @"AWS_SECRET_KEY";

NSString *bucketName = @"chilkat.ocean";
NSString *objectName = @"seahorse.jpg";
NSString *localFilePath = @"qa_data/jpg/seahorse.jpg";
NSString *contentType = @"image/jpg";

// User-defined metadata are name/value pairs, and are added to the HTTP request header.
// Header names must begin with "x-amz-meta-" to distinguish them from other HTTP headers.
// Note that Amazon S3 stores user-defined metadata keys in lowercase.

// For example, to add genus=Hippocampus, we do this:
[http SetRequestHeader: @"x-amz-meta-genus" value: @"Hippocampus"];

// Add a few more user-metadata key pairs.
[http SetRequestHeader: @"x-amz-meta-species" value: @"big-belly seahorse"];
[http SetRequestHeader: @"x-amz-meta-habitat" value: @"shallow tropical and temperate waters"];

success = [http S3_UploadFile: localFilePath contentType: contentType bucketName: bucketName ObjectName: objectName];

if (success != YES) {
    NSLog(@"%@",http.LastErrorText);
}
else {
    NSLog(@"%@",@"File uploaded.");
}