Tcl
Tcl
Google Cloud Storage: Update Object Metadata
See more Google Cloud Storage Examples
Demonstrates how to update (edit) the metadata associated with an object in a Google Cloud Storage bucket.Chilkat Tcl Downloads
load ./chilkat.dll
set success 0
# This example assumes the Chilkat API to have been previously unlocked.
# See Global Unlock Sample for sample code.
set http [new_CkHttp]
# Implements the following CURL command:
# curl -X PATCH --data-binary @JSON_FILE_NAME \
# -H "Authorization: Bearer OAUTH2_TOKEN" \
# -H "Content-Type: application/json" \
# "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/o/OBJECT_NAME"
# Use the following online tool to generate HTTP code from a CURL command
# Convert a cURL Command to HTTP Source Code
set bdRequestBody [new_CkBinData]
set success [CkBinData_LoadFile $bdRequestBody "JSON_FILE_PATH"]
if {$success != 1} then {
puts "Failed to load JSON_FILE_PATH"
delete_CkHttp $http
delete_CkBinData $bdRequestBody
exit
}
# Adds the "Authorization: Bearer OAUTH2_TOKEN" header.
CkHttp_put_AuthToken $http "OAUTH2_TOKEN"
set resp [new_CkHttpResponse]
set success [CkHttp_HttpBd $http "PATCH" "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/o/OBJECT_NAME" $bdRequestBody "application/json" $resp]
if {$success == 0} then {
puts [CkHttp_lastErrorText $http]
delete_CkHttp $http
delete_CkBinData $bdRequestBody
delete_CkHttpResponse $resp
exit
}
set sbResponseBody [new_CkStringBuilder]
CkHttpResponse_GetBodySb $resp $sbResponseBody
set jResp [new_CkJsonObject]
CkJsonObject_LoadSb $jResp $sbResponseBody
CkJsonObject_put_EmitCompact $jResp 0
puts "Response Body:"
puts [CkJsonObject_emit $jResp]
set respStatusCode [CkHttpResponse_get_StatusCode $resp]
puts "Response Status Code = $respStatusCode"
if {$respStatusCode >= 400} then {
puts "Response Header:"
puts [CkHttpResponse_header $resp]
puts "Failed."
delete_CkHttp $http
delete_CkBinData $bdRequestBody
delete_CkHttpResponse $resp
delete_CkStringBuilder $sbResponseBody
delete_CkJsonObject $jResp
exit
}
delete_CkHttp $http
delete_CkBinData $bdRequestBody
delete_CkHttpResponse $resp
delete_CkStringBuilder $sbResponseBody
delete_CkJsonObject $jResp