Sample code for 30+ languages & platforms
Xbase++

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 Xbase++ Downloads

Xbase++
LOCAL nSuccess
LOCAL oHttp
LOCAL cBucketName
LOCAL cObjectName
LOCAL cLocalFilePath
LOCAL cContentType

nSuccess := 0

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

oHttp := CreateObject("Chilkat.Http")

//  Insert your AWS keys here:
oHttp:AwsAccessKey := "AWS_ACCESS_KEY"
oHttp:AwsSecretKey := "AWS_SECRET_KEY"

cBucketName := "chilkat.ocean"
cObjectName := "seahorse.jpg"
cLocalFilePath := "qa_data/jpg/seahorse.jpg"
cContentType := "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:
oHttp:SetRequestHeader("x-amz-meta-genus", "Hippocampus")

//  Add a few more user-metadata key pairs.
oHttp:SetRequestHeader("x-amz-meta-species", "big-belly seahorse")
oHttp:SetRequestHeader("x-amz-meta-habitat", "shallow tropical and temperate waters")

nSuccess := oHttp:S3_UploadFile(cLocalFilePath, cContentType, cBucketName, cObjectName)

IF (nSuccess != 1)
    ? oHttp:LastErrorText
ELSE
    ? "File uploaded."
ENDIF

oHttp:destroy()