Visual FoxPro
Visual FoxPro
Create S3 Pre-Signed URL for Upload
See more Amazon S3 Examples
Demonstrates how to generate a pre-signed URL for S3 uploads.Chilkat Visual FoxPro Downloads
LOCAL lnSuccess
LOCAL loHttp
LOCAL lcBucketName
LOCAL lcObjectName
LOCAL lcAwsService
LOCAL lcHttpVerb
LOCAL lnNumSecondsValid
LOCAL lnBUseHttps
LOCAL lcPreSignedUrl
LOCAL loResp
lnSuccess = 0
* This example requires the Chilkat API to have been previously unlocked.
* See Global Unlock Sample for sample code.
loHttp = CreateObject('Chilkat.Http')
loHttp.AwsAccessKey = "AWS_ACCESS_KEY"
loHttp.AwsSecretKey = "AWS_SECRET_KEY"
* Make sure to set your AWS region correctly
loHttp.AwsRegion = "us-east-1"
lcBucketName = "chilkat200"
lcObjectName = "starfish/starfish.jpg"
lcAwsService = "s3"
lcHttpVerb = "PUT"
* The signed URL will be valid for this number of seconds:
lnNumSecondsValid = 86400
* Choose between a URL beginning with "http://" or "https://"...
lnBUseHttps = 1
* Generate the pre-signed URL
lcPreSignedUrl = loHttp.S3_GenPresignedUrl(lcHttpVerb,lnBUseHttps,lcBucketName,lcObjectName,lnNumSecondsValid,lcAwsService)
IF (loHttp.LastMethodSuccess = 0) THEN
? loHttp.LastErrorText
RELEASE loHttp
CANCEL
ENDIF
? "Presigned URL for Upload: " + lcPreSignedUrl
* Here's an example of a pre-signed URL
*
* http://chilkat200.s3.amazonaws.com/starfish/starfish.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIBJLOVZVXAU2AFUA%2F20200623%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20200623T234049Z&X-Amz-Expires=86400&X-Amz-SignedHeaders=host&X-Amz-Signature=xxxxxeaea071178d772856c0a4e4c0114a8d9992f0d0812955e490d0exxxxxxx
*
* You can use the pre-signed URL to upload from Chilkat
* For example, upload by streaming from a local file
loResp = CreateObject('Chilkat.HttpResponse')
lnSuccess = loHttp.HttpFile("PUT",lcPreSignedUrl,"qa_data/jpg/starfish.jpg","image/jpg",loResp)
IF (lnSuccess = 0) THEN
? loHttp.LastErrorText
RELEASE loHttp
RELEASE loResp
CANCEL
ENDIF
? "response status code = " + STR(loResp.StatusCode)
? "response body size: " + STR(loResp.ContentLength)
IF (loResp.ContentLength > 0) THEN
? "response body:"
? loResp.BodyStr
ENDIF
RELEASE loHttp
RELEASE loResp