Sample code for 30+ languages & platforms
PureBasic

S3 Upload a File with Public Read Permissions

See more Amazon S3 Examples

Demonstrates how to upload a file to the Amazon S3 service with the x-amz-acl request header set to "public-read" to allow the file to be publicly downloadable.

Chilkat PureBasic Downloads

PureBasic
IncludeFile "CkHttp.pb"

Procedure ChilkatExample()

    success.i = 0

    ; This example assumes the Chilkat HTTP 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"

    ; Add the x-amz-acl request header to make the file publicly readable.
    CkHttp::ckSetRequestHeader(http,"x-amz-acl","public-read")

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

    If success <> 1
        Debug CkHttp::ckLastErrorText(http)
        CkHttp::ckDispose(http)
        ProcedureReturn
    EndIf

    If CkHttp::ckLastStatus(http) = 200
        Debug "File uploaded."
    Else
        Debug "Response status code: " + Str(CkHttp::ckLastStatus(http))
        Debug CkHttp::ckLastResponseBody(http)
    EndIf



    CkHttp::ckDispose(http)


    ProcedureReturn
EndProcedure