Sample code for 30+ languages & platforms
Xbase++

Initiate Resumable Upload Session

See more Google Cloud Storage Examples

Initiate a Google Cloud Storage resumable upload session..

Chilkat Xbase++ Downloads

Xbase++
LOCAL nSuccess
LOCAL oHttp
LOCAL oJsonToken
LOCAL oJsonMetaData
LOCAL cUrl
LOCAL oResp
LOCAL nStatusCode
LOCAL cSessionUrl

nSuccess := 0

//  This example assumes the Chilkat API to have been previously unlocked.
//  See Global Unlock Sample for sample code.

oHttp := CreateObject("Chilkat.Http")

oJsonToken := CreateObject("Chilkat.JsonObject")
nSuccess := oJsonToken:LoadFile("qa_data/tokens/googleCloudStorage.json")
IF (nSuccess == 0)
    ? oJsonToken:LastErrorText
    oHttp:destroy()
    oJsonToken:destroy()
    RETURN
ENDIF

oJsonMetaData := CreateObject("Chilkat.JsonObject")
oJsonMetaData:UpdateString("contentType", "image/jpeg")

//  Adds the "Authorization: Bearer <access_token>" header..
oHttp:AuthToken := oJsonToken:StringOf("access_token")

oHttp:SetUrlVar("bucket_name", "chilkat-bucket-b")
oHttp:SetUrlVar("object_name", "penguins2.jpg")
cUrl := "https://storage.googleapis.com/upload/storage/v1/b/{$bucket_name}/o?uploadType=resumable&name={$object_name}"
oResp := CreateObject("Chilkat.HttpResponse")
nSuccess := oHttp:HttpJson("POST", cUrl, oJsonMetaData, "application/json", oResp)
IF (nSuccess == 0)
    ? oHttp:LastErrorText
    oHttp:destroy()
    oJsonToken:destroy()
    oJsonMetaData:destroy()
    oResp:destroy()
    RETURN
ENDIF

nStatusCode := oResp:StatusCode
? "response status code = " + Str(nStatusCode)

cSessionUrl := ""

IF (nStatusCode != 200)
    ? oResp:BodyStr
ELSE
    //  The session URL will be used to upload the file in chunks, in subsequent HTTP POSTs...
    cSessionUrl := oResp:GetHeaderField("Location")
    ? "Session URL = " + cSessionUrl
ENDIF

oHttp:destroy()
oJsonToken:destroy()
oJsonMetaData:destroy()
oResp:destroy()