Sample code for 30+ languages & platforms
Swift

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 Swift Downloads

Swift

func chilkatTest() {
    var success: Bool = false

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

    let http = CkoHttp()!

    // Insert your AWS keys here:
    http.awsAccessKey = "AWS_ACCESS_KEY"
    http.awsSecretKey = "AWS_SECRET_KEY"

    var bucketName: String? = "chilkat.ocean"
    var objectName: String? = "seahorse.jpg"
    var localFilePath: String? = "qa_data/jpg/seahorse.jpg"
    var contentType: String? = "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(name: "x-amz-meta-genus", value: "Hippocampus")

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

    success = http.s3_UploadFile(localFilePath: localFilePath, contentType: contentType, bucketName: bucketName, objectName: objectName)

    if success != true {
        print("\(http.lastErrorText!)")
    }
    else {
        print("File uploaded.")
    }


}