Sample code for 30+ languages & platforms
PureBasic

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

PureBasic
IncludeFile "CkHttp.pb"

Procedure ChilkatExample()

    success.i = 0

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

    http.i = CkHttp::ckCreate()
    If http.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    ; Insert your AWS keys here:
    CkHttp::setCkAwsAccessKey(http, "AWS_ACCESS_KEY")
    CkHttp::setCkAwsSecretKey(http, "AWS_SECRET_KEY")

    bucketName.s = "chilkat.ocean"
    objectName.s = "seahorse.jpg"
    localFilePath.s = "qa_data/jpg/seahorse.jpg"
    contentType.s = "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:
    CkHttp::ckSetRequestHeader(http,"x-amz-meta-genus","Hippocampus")

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

    success = CkHttp::ckS3_UploadFile(http,localFilePath,contentType,bucketName,objectName)

    If success <> 1
        Debug CkHttp::ckLastErrorText(http)
    Else
        Debug "File uploaded."
    EndIf



    CkHttp::ckDispose(http)


    ProcedureReturn
EndProcedure