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"
LOCAL loRest
LOCAL lnSuccess
LOCAL lnBTls
LOCAL lnPort
LOCAL lnBAutoReconnect
LOCAL loSbResponseBody
LOCAL lnRespStatusCode
LOCAL loJsonResponse
LOCAL lcKind
LOCAL lcTotalBytesRewritten
LOCAL lcObjectSize
LOCAL lnDone
LOCAL lcResourceKind
LOCAL lcResourceId
LOCAL lcResourceSelfLink
LOCAL lcResourceName
LOCAL lcResourceBucket
LOCAL lcResourceGeneration
LOCAL lcResourceMetageneration
LOCAL lcResourceContentType
LOCAL lcResourceTimeCreated
LOCAL lcResourceUpdated
LOCAL lcResourceStorageClass
LOCAL lcResourceTimeStorageClassUpdated
LOCAL lcResourceSize
LOCAL lcResourceMd5Hash
LOCAL lcResourceMediaLink
LOCAL lcResourceCrc32c
LOCAL lcResourceEtag
loRest = CreateObject('Chilkat_9_5_0.Rest')
* 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
lnBTls = 1
lnPort = 443
lnBAutoReconnect = 1
lnSuccess = loRest.Connect("www.googleapis.com",lnPort,lnBTls,lnBAutoReconnect)
IF (lnSuccess <> 1) THEN
? "ConnectFailReason: " + STR(loRest.ConnectFailReason)
? loRest.LastErrorText
RELEASE loRest
CANCEL
ENDIF
loRest.AddHeader("Authorization","Bearer CLOUD_STORAGE_TOKEN")
loSbResponseBody = CreateObject('Chilkat_9_5_0.StringBuilder')
lnSuccess = loRest.FullRequestNoBodySb("POST","/storage/v1/b/chilkat-bucket/o/starfish.jpg/rewriteTo/b/chilkat-images/o/starfish.jpg?project=MY_CLOUD_STORAGE_PROJECT",loSbResponseBody)
IF (lnSuccess <> 1) THEN
? loRest.LastErrorText
RELEASE loRest
RELEASE loSbResponseBody
CANCEL
ENDIF
lnRespStatusCode = loRest.ResponseStatusCode
IF (lnRespStatusCode >= 400) THEN
? "Response Status Code = " + STR(lnRespStatusCode)
? "Response Header:"
? loRest.ResponseHeader
? "Response Body:"
? loSbResponseBody.GetAsString()
RELEASE loRest
RELEASE loSbResponseBody
CANCEL
ENDIF
loJsonResponse = CreateObject('Chilkat_9_5_0.JsonObject')
loJsonResponse.LoadSb(loSbResponseBody)
* See the Online Tool for Generating JSON Parse Code
lcKind = loJsonResponse.StringOf("kind")
lcTotalBytesRewritten = loJsonResponse.StringOf("totalBytesRewritten")
lcObjectSize = loJsonResponse.StringOf("objectSize")
lnDone = loJsonResponse.BoolOf("done")
lcResourceKind = loJsonResponse.StringOf("resource.kind")
lcResourceId = loJsonResponse.StringOf("resource.id")
lcResourceSelfLink = loJsonResponse.StringOf("resource.selfLink")
lcResourceName = loJsonResponse.StringOf("resource.name")
lcResourceBucket = loJsonResponse.StringOf("resource.bucket")
lcResourceGeneration = loJsonResponse.StringOf("resource.generation")
lcResourceMetageneration = loJsonResponse.StringOf("resource.metageneration")
lcResourceContentType = loJsonResponse.StringOf("resource.contentType")
lcResourceTimeCreated = loJsonResponse.StringOf("resource.timeCreated")
lcResourceUpdated = loJsonResponse.StringOf("resource.updated")
lcResourceStorageClass = loJsonResponse.StringOf("resource.storageClass")
lcResourceTimeStorageClassUpdated = loJsonResponse.StringOf("resource.timeStorageClassUpdated")
lcResourceSize = loJsonResponse.StringOf("resource.size")
lcResourceMd5Hash = loJsonResponse.StringOf("resource.md5Hash")
lcResourceMediaLink = loJsonResponse.StringOf("resource.mediaLink")
lcResourceCrc32c = loJsonResponse.StringOf("resource.crc32c")
lcResourceEtag = loJsonResponse.StringOf("resource.etag")
RELEASE loRest
RELEASE loSbResponseBody
RELEASE loJsonResponse
{
"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="
}
}