Sample code for 30+ languages & platforms
DataFlex

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

DataFlex
Use ChilkatAx-win32.pkg

Procedure Test
    Boolean iSuccess
    Handle hoHttp
    String sBucketName
    String sObjectName
    String sLocalFilePath
    String sContentType
    String sTemp1

    Move False To iSuccess

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

    Get Create (RefClass(cComChilkatHttp)) To hoHttp
    If (Not(IsComObjectCreated(hoHttp))) Begin
        Send CreateComObject of hoHttp
    End

    // Insert your AWS keys here:
    Set ComAwsAccessKey Of hoHttp To "AWS_ACCESS_KEY"
    Set ComAwsSecretKey Of hoHttp To "AWS_SECRET_KEY"

    Move "chilkat.ocean" To sBucketName
    Move "seahorse.jpg" To sObjectName
    Move "qa_data/jpg/seahorse.jpg" To sLocalFilePath
    Move "image/jpg" To sContentType

    // 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:
    Send ComSetRequestHeader To hoHttp "x-amz-meta-genus" "Hippocampus"

    // Add a few more user-metadata key pairs.
    Send ComSetRequestHeader To hoHttp "x-amz-meta-species" "big-belly seahorse"
    Send ComSetRequestHeader To hoHttp "x-amz-meta-habitat" "shallow tropical and temperate waters"

    Get ComS3_UploadFile Of hoHttp sLocalFilePath sContentType sBucketName sObjectName To iSuccess

    If (iSuccess <> True) Begin
        Get ComLastErrorText Of hoHttp To sTemp1
        Showln sTemp1
    End
    Else Begin
        Showln "File uploaded."
    End



End_Procedure