Copies a fie (also known as an object) to another Google Cloud Storage bucket. This example copies the file "starfish.jpg" from the "chilkat-test" bucket to the "chilkat-images" bucket. In Google Cloud Storage, moving a file to a new bucket is a 2-step operation: First copy the file, then delete the original.
curl -X POST https://www.googleapis.com/storage/v1/b/chilkat-bucket/o/starfish.jpg/rewriteTo/b/chilkat-images/o/starfish.jpg?project=MY_CLOUD_STORAGE_PROJECT \
--header "Authorization: Bearer CLOUD_STORAGE_TOKEN"
Use ChilkatAx-9.5.0-win32.pkg
Procedure Test
Handle hoRest
Boolean iSuccess
Boolean iBTls
Integer iPort
Boolean iBAutoReconnect
Variant vSbResponseBody
Handle hoSbResponseBody
Integer iRespStatusCode
Handle hoJsonResponse
String sKind
String sTotalBytesRewritten
String sObjectSize
Boolean iDone
String sResourceKind
String sResourceId
String sResourceSelfLink
String sResourceName
String sResourceBucket
String sResourceGeneration
String sResourceMetageneration
String sResourceContentType
String sResourceTimeCreated
String sResourceUpdated
String sResourceStorageClass
String sResourceTimeStorageClassUpdated
String sResourceSize
String sResourceMd5Hash
String sResourceMediaLink
String sResourceCrc32c
String sResourceEtag
String sTemp1
Integer iTemp1
Get Create (RefClass(cComChilkatRest)) To hoRest
If (Not(IsComObjectCreated(hoRest))) Begin
Send CreateComObject of hoRest
End
// URL: https://www.googleapis.com/storage/v1/b/chilkat-bucket/o/starfish.jpg/rewriteTo/b/chilkat-images/o/starfish.jpg?project=MY_CLOUD_STORAGE_PROJECT
Move True To iBTls
Move 443 To iPort
Move True To iBAutoReconnect
Get ComConnect Of hoRest "www.googleapis.com" iPort iBTls iBAutoReconnect To iSuccess
If (iSuccess <> True) Begin
Get ComConnectFailReason Of hoRest To iTemp1
Showln "ConnectFailReason: " iTemp1
Get ComLastErrorText Of hoRest To sTemp1
Showln sTemp1
Procedure_Return
End
Get ComAddHeader Of hoRest "Authorization" "Bearer CLOUD_STORAGE_TOKEN" To iSuccess
Get Create (RefClass(cComChilkatStringBuilder)) To hoSbResponseBody
If (Not(IsComObjectCreated(hoSbResponseBody))) Begin
Send CreateComObject of hoSbResponseBody
End
Get pvComObject of hoSbResponseBody to vSbResponseBody
Get ComFullRequestNoBodySb Of hoRest "POST" "/storage/v1/b/chilkat-bucket/o/starfish.jpg/rewriteTo/b/chilkat-images/o/starfish.jpg?project=MY_CLOUD_STORAGE_PROJECT" vSbResponseBody To iSuccess
If (iSuccess <> True) Begin
Get ComLastErrorText Of hoRest To sTemp1
Showln sTemp1
Procedure_Return
End
Get ComResponseStatusCode Of hoRest To iRespStatusCode
If (iRespStatusCode >= 400) Begin
Showln "Response Status Code = " iRespStatusCode
Showln "Response Header:"
Get ComResponseHeader Of hoRest To sTemp1
Showln sTemp1
Showln "Response Body:"
Get ComGetAsString Of hoSbResponseBody To sTemp1
Showln sTemp1
Procedure_Return
End
Get Create (RefClass(cComChilkatJsonObject)) To hoJsonResponse
If (Not(IsComObjectCreated(hoJsonResponse))) Begin
Send CreateComObject of hoJsonResponse
End
Get pvComObject of hoSbResponseBody to vSbResponseBody
Get ComLoadSb Of hoJsonResponse vSbResponseBody To iSuccess
// See the Online Tool for Generating JSON Parse Code
Get ComStringOf Of hoJsonResponse "kind" To sKind
Get ComStringOf Of hoJsonResponse "totalBytesRewritten" To sTotalBytesRewritten
Get ComStringOf Of hoJsonResponse "objectSize" To sObjectSize
Get ComBoolOf Of hoJsonResponse "done" To iDone
Get ComStringOf Of hoJsonResponse "resource.kind" To sResourceKind
Get ComStringOf Of hoJsonResponse "resource.id" To sResourceId
Get ComStringOf Of hoJsonResponse "resource.selfLink" To sResourceSelfLink
Get ComStringOf Of hoJsonResponse "resource.name" To sResourceName
Get ComStringOf Of hoJsonResponse "resource.bucket" To sResourceBucket
Get ComStringOf Of hoJsonResponse "resource.generation" To sResourceGeneration
Get ComStringOf Of hoJsonResponse "resource.metageneration" To sResourceMetageneration
Get ComStringOf Of hoJsonResponse "resource.contentType" To sResourceContentType
Get ComStringOf Of hoJsonResponse "resource.timeCreated" To sResourceTimeCreated
Get ComStringOf Of hoJsonResponse "resource.updated" To sResourceUpdated
Get ComStringOf Of hoJsonResponse "resource.storageClass" To sResourceStorageClass
Get ComStringOf Of hoJsonResponse "resource.timeStorageClassUpdated" To sResourceTimeStorageClassUpdated
Get ComStringOf Of hoJsonResponse "resource.size" To sResourceSize
Get ComStringOf Of hoJsonResponse "resource.md5Hash" To sResourceMd5Hash
Get ComStringOf Of hoJsonResponse "resource.mediaLink" To sResourceMediaLink
Get ComStringOf Of hoJsonResponse "resource.crc32c" To sResourceCrc32c
Get ComStringOf Of hoJsonResponse "resource.etag" To sResourceEtag
End_Procedure
{
"kind": "storage#rewriteResponse",
"totalBytesRewritten": "6229",
"objectSize": "6229",
"done": true,
"resource": {
"kind": "storage#object",
"id": "chilkat-images/starfish.jpg/1540298057547474",
"selfLink": "https://www.googleapis.com/storage/v1/b/chilkat-images/o/starfish.jpg",
"name": "starfish.jpg",
"bucket": "chilkat-images",
"generation": "1540298057547474",
"metageneration": "1",
"contentType": "image/jpeg",
"timeCreated": "2018-10-23T12:34:17.547Z",
"updated": "2018-10-23T12:34:17.547Z",
"storageClass": "MULTI_REGIONAL",
"timeStorageClassUpdated": "2018-10-23T12:34:17.547Z",
"size": "6229",
"md5Hash": "LpxZ2/JmI2fcl9/dqF2gSA==",
"mediaLink": "https://www.googleapis.com/download/storage/v1/b/chilkat-images/o/starfish.jpg?generation=1540298057547474&alt=media",
"crc32c": "9RjgwQ==",
"etag": "CNL9xbTJnN4CEAE="
}
}