DataFlex
DataFlex
S3 Upload with Transfer Acceleration
See more Amazon S3 Examples
Demonstrates how to upload from a pre-signed URL with transfer acceleration.Chilkat DataFlex Downloads
Use ChilkatAx-win32.pkg
Procedure Test
Boolean iSuccess
Handle hoHttp
String sBucketName
String sObjectName
String sAwsService
String sHttpVerb
Integer iNumSecondsValid
Boolean iBUseHttps
String sPreSignedUrl
Variant vResp
Handle hoResp
String sTemp1
Integer iTemp1
Boolean bTemp1
Move False To iSuccess
// This example requires 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
Set ComAwsAccessKey Of hoHttp To "AWS_ACCESS_KEY"
Set ComAwsSecretKey Of hoHttp To "AWS_SECRET_KEY"
// Make sure to set your AWS region correctly
Set ComAwsRegion Of hoHttp To "us-east-1"
Move "chilkat200" To sBucketName
Move "starfish/starfish.jpg" To sObjectName
Move "s3" To sAwsService
Move "PUT" To sHttpVerb
// To use S3 acceleration, we simply set the AwsEndpoint to "s3-accelerate.amazonaws.com".
// Note: You must enable transfer acceleration on your bucket. Acceleration incurs a higher cost.
Set ComAwsEndpoint Of hoHttp To "s3-accelerate.amazonaws.com"
// The signed URL will be valid for this number of seconds:
Move 86400 To iNumSecondsValid
// Choose between a URL beginning with "http://" or "https://"...
Move True To iBUseHttps
// Generate the pre-signed URL that will use s3-accelerate.amazonaws.com
Get ComS3_GenPresignedUrl Of hoHttp sHttpVerb iBUseHttps sBucketName sObjectName iNumSecondsValid sAwsService To sPreSignedUrl
Get ComLastMethodSuccess Of hoHttp To bTemp1
If (bTemp1 = False) Begin
Get ComLastErrorText Of hoHttp To sTemp1
Showln sTemp1
Procedure_Return
End
// The following URL can be copy-and-pasted into a browser..
Showln "Presigned URL for Upload: " sPreSignedUrl
// Here's an example of a pre-signed URL
//
// http://chilkat200.s3-accelerate.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
//
// Upload a local file using the pre-signed URL.
// (Chilkat provides other methods to upload file data directly from binary or text data in memory.)
Get Create (RefClass(cComChilkatHttpResponse)) To hoResp
If (Not(IsComObjectCreated(hoResp))) Begin
Send CreateComObject of hoResp
End
Get pvComObject of hoResp to vResp
Get ComHttpFile Of hoHttp "PUT" sPreSignedUrl "qa_data/jpg/starfish.jpg" "image/jpg" vResp To iSuccess
If (iSuccess = False) Begin
Get ComLastErrorText Of hoHttp To sTemp1
Showln sTemp1
Procedure_Return
End
Get ComStatusCode Of hoResp To iTemp1
Showln "response status code = " iTemp1
Get ComContentLength Of hoResp To iTemp1
Showln "response body size: " iTemp1
Get ComContentLength Of hoResp To iTemp1
If (iTemp1 > 0) Begin
Showln "response body:"
Get ComBodyStr Of hoResp To sTemp1
Showln sTemp1
End
End_Procedure