|  | 
Chilkat  HOME  Android™  AutoIt  C  C#  C++  Chilkat2-Python  CkPython  Classic ASP  DataFlex  Delphi DLL  Go  Java  Node.js  Objective-C  PHP Extension  Perl  PowerBuilder  PowerShell  PureBasic  Ruby  SQL Server  Swift  Tcl  Unicode C  Unicode C++  VB.NET  VBScript  Visual Basic 6.0  Visual FoxPro  Xojo Plugin
| (Visual FoxPro) Initiate Multipart S3 UploadInitiates an Amazon AWS multipart S3 upload. The following is quoted from the Amazon Simple Storage Service Documentation: "The Multipart upload API enables you to upload large objects in parts. You can use this API to upload new large objects or make a copy of an existing object (see Operations on Objects). 
 LOCAL loRest LOCAL lnBTls LOCAL lnPort LOCAL lnBAutoReconnect LOCAL lnSuccess LOCAL loAuthAws LOCAL lcFileToUploadPath LOCAL lcResponseXml LOCAL loXml * This example requires the Chilkat API to have been previously unlocked. * See Global Unlock Sample for sample code. * Other S3 Multipart Upload Examples: * S3 Upload Parts * Complete Multipart Upload * Abort Multipart Upload * List Parts * For versions of Chilkat < 10.0.0, use CreateObject('Chilkat_9_5_0.Rest') loRest = CreateObject('Chilkat.Rest') * Connect to the Amazon AWS REST server. lnBTls = 1 lnPort = 443 lnBAutoReconnect = 1 lnSuccess = loRest.Connect("s3.amazonaws.com",lnPort,lnBTls,lnBAutoReconnect) * ---------------------------------------------------------------------------- * Important: For buckets created in regions outside us-east-1, * there are three important changes that need to be made. * See Working with S3 Buckets in Non-us-east-1 Regions for the details. * ---------------------------------------------------------------------------- * Provide AWS credentials for the REST call. * For versions of Chilkat < 10.0.0, use CreateObject('Chilkat_9_5_0.AuthAws') loAuthAws = CreateObject('Chilkat.AuthAws') loAuthAws.AccessKey = "AWS_ACCESS_KEY" loAuthAws.SecretKey = "AWS_SECRET_KEY" loAuthAws.ServiceName = "s3" lnSuccess = loRest.SetAuthAws(loAuthAws) * Set the bucket name via the HOST header. * In this case, the bucket name is "chilkat100". loRest.Host = "chilkat100.s3.amazonaws.com" * The local file path (on our local system) to upload. lcFileToUploadPath = "s3_multipart_uploads/somethingBig.zip" * The HTTP request to initiate a multipart upload is a POST with no body content.. * This is the tricky part: We would be tempted to pass "/somethingBig.zip?uploads" * in the 2nd argument to FullRequestNoBody. However, we must pass only the path without query * params. The "uploads" query param must be added via AddQueryParam. This allows it to be included * in the AWS signature calculation for authentication. loRest.AddQueryParam("uploads","") lcResponseXml = loRest.FullRequestNoBody("POST","/somethingBig.zip") IF (loRest.LastMethodSuccess <> 1) THEN ? loRest.LastErrorText RELEASE loRest RELEASE loAuthAws CANCEL ENDIF * When successful, the S3 Storage service will respond with a 200 response code, * with an XML body. IF (loRest.ResponseStatusCode <> 200) THEN * Examine the request/response to see what happened. ? "response status code = " + STR(loRest.ResponseStatusCode) ? "response status text = " + loRest.ResponseStatusText ? "response header: " + loRest.ResponseHeader ? "response body: " + lcResponseXml ? "---" ? "LastRequestStartLine: " + loRest.LastRequestStartLine ? "LastRequestHeader: " + loRest.LastRequestHeader ENDIF * See http://docs.aws.amazon.com/AmazonS3/latest/API/mpUploadInitiate.html * for a sample of the XML response. ? lcResponseXml ? "----" * Save the XML response to a file, and show the UploadId.. * For versions of Chilkat < 10.0.0, use CreateObject('Chilkat_9_5_0.Xml') loXml = CreateObject('Chilkat.Xml') loXml.LoadXml(lcResponseXml) loXml.SaveXml("s3_multipart_uploads/initiate.xml") ? "UploadId = " + loXml.GetChildContent("UploadId") ? "Multipart upload initiated." RELEASE loRest RELEASE loAuthAws RELEASE loXml | ||||
© 2000-2025 Chilkat Software, Inc. All Rights Reserved.