Chilkat HOME .NET Core C# Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi ActiveX Delphi DLL Go Java Lianja Mono C# Node.js Objective-C PHP ActiveX PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(PureBasic) Create S3 Bucket in a RegionSee more Amazon S3 ExamplesDemonstrates how to create an S3 bucket in a specified region. This example will create a bucket in the eu-west-2 region. For more information, see https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html
IncludeFile "CkXml.pb" IncludeFile "CkStringBuilder.pb" IncludeFile "CkAuthAws.pb" IncludeFile "CkRest.pb" Procedure ChilkatExample() ; This example requires the Chilkat API to have been previously unlocked. ; See Global Unlock Sample for sample code. rest.i = CkRest::ckCreate() If rest.i = 0 Debug "Failed to create object." ProcedureReturn EndIf ; Connect to the Amazon AWS REST server. bTls.i = 1 port.i = 443 bAutoReconnect.i = 1 success.i = CkRest::ckConnect(rest,"s3.amazonaws.com",port,bTls,bAutoReconnect) ; Provide AWS credentials for the REST call. authAws.i = CkAuthAws::ckCreate() If authAws.i = 0 Debug "Failed to create object." ProcedureReturn EndIf CkAuthAws::setCkAccessKey(authAws, "AWS_ACCESS_KEY") CkAuthAws::setCkSecretKey(authAws, "AWS_SECRET_KEY") CkAuthAws::setCkServiceName(authAws, "s3") success = CkRest::ckSetAuthAws(rest,authAws) ; We'll send a PUT request having an XML body such as this: ; <CreateBucketConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> ; <LocationConstraint>BucketRegion</LocationConstraint> ; </CreateBucketConfiguration> ; Create the XML body specifying the region as "eu-west-2" bucketRegion.s = "eu-west-2" sbBucketRegion.i = CkStringBuilder::ckCreate() If sbBucketRegion.i = 0 Debug "Failed to create object." ProcedureReturn EndIf CkStringBuilder::ckAppend(sbBucketRegion,bucketRegion) ; We only need to specify the LocationConstraint if the bucket's region is NOT us-east-1 xml.i = CkXml::ckCreate() If xml.i = 0 Debug "Failed to create object." ProcedureReturn EndIf If Not CkStringBuilder::ckContentsEqual(sbBucketRegion,"us-east-1") CkXml::setCkTag(xml, "CreateBucketConfiguration") CkXml::ckAddAttribute(xml,"xmlns","http://s3.amazonaws.com/doc/2006-03-01/") CkXml::ckUpdateChildContent(xml,"LocationConstraint","eu-west-2") EndIf ; -------------------------------------------------------------- ; IMPORTANT: To create a bucket in the default us-east-1 region, ; do not add the LocationConstraint. Adding a LocationConstraint of "us-east-1" ; causes an error "The specified location-constraint is not valid." ; By default, the bucket is created in us-east-1 by sending a PUT with an empty body. ; -------------------------------------------------------------- ; Set the bucket name via the HOST header. ; In this case, the bucket name is "chilkateuwest2". CkRest::setCkHost(rest, "chilkateuwest2.s3.amazonaws.com") ; Make the call to create the bucket. responseStr.s If Not CkStringBuilder::ckContentsEqual(sbBucketRegion,"us-east-1") responseStr = CkRest::ckFullRequestString(rest,"PUT","/",CkXml::ckGetXml(xml)) Else ; If the bucket is to be created in the us-east-1 region (the default region) ; just send a PUT with no body. responseStr = CkRest::ckFullRequestNoBody(rest,"PUT","/") EndIf If CkRest::ckLastMethodSuccess(rest) <> 1 Debug CkRest::ckLastErrorText(rest) CkRest::ckDispose(rest) CkAuthAws::ckDispose(authAws) CkStringBuilder::ckDispose(sbBucketRegion) CkXml::ckDispose(xml) ProcedureReturn EndIf If CkRest::ckResponseStatusCode(rest) <> 200 Debug "status code = " + Str(CkRest::ckResponseStatusCode(rest)) responseXml.i = CkXml::ckCreate() If responseXml.i = 0 Debug "Failed to create object." ProcedureReturn EndIf CkXml::ckLoadXml(responseXml,responseStr) Debug CkXml::ckGetXml(responseXml) Debug "Failed." CkRest::ckDispose(rest) CkAuthAws::ckDispose(authAws) CkStringBuilder::ckDispose(sbBucketRegion) CkXml::ckDispose(xml) CkXml::ckDispose(responseXml) ProcedureReturn EndIf Debug "Bucket in the eu-west-2 region created." CkRest::ckDispose(rest) CkAuthAws::ckDispose(authAws) CkStringBuilder::ckDispose(sbBucketRegion) CkXml::ckDispose(xml) CkXml::ckDispose(responseXml) ProcedureReturn EndProcedure |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.