Sample code for 30+ languages & platforms
Lianja

Initiate Resumable Upload Session

See more Google Cloud Storage Examples

Initiate a Google Cloud Storage resumable upload session..

Chilkat Lianja Downloads

Lianja
llSuccess = .F.

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

loHttp = createobject("CkHttp")

loJsonToken = createobject("CkJsonObject")
llSuccess = loJsonToken.LoadFile("qa_data/tokens/googleCloudStorage.json")
if (llSuccess = .F.) then
    ? loJsonToken.LastErrorText
    release loHttp
    release loJsonToken
    return
endif

loJsonMetaData = createobject("CkJsonObject")
loJsonMetaData.UpdateString("contentType","image/jpeg")

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

loHttp.SetUrlVar("bucket_name","chilkat-bucket-b")
loHttp.SetUrlVar("object_name","penguins2.jpg")
lcUrl = "https://storage.googleapis.com/upload/storage/v1/b/{$bucket_name}/o?uploadType=resumable&name={$object_name}"
loResp = createobject("CkHttpResponse")
llSuccess = loHttp.HttpJson("POST",lcUrl,loJsonMetaData,"application/json",loResp)
if (llSuccess = .F.) then
    ? loHttp.LastErrorText
    release loHttp
    release loJsonToken
    release loJsonMetaData
    release loResp
    return
endif

lnStatusCode = loResp.StatusCode
? "response status code = " + str(lnStatusCode)

lcSessionUrl = ""

if (lnStatusCode <> 200) then
    ? loResp.BodyStr
else
    // The session URL will be used to upload the file in chunks, in subsequent HTTP POSTs...
    lcSessionUrl = loResp.GetHeaderField("Location")
    ? "Session URL = " + lcSessionUrl
endif



release loHttp
release loJsonToken
release loJsonMetaData
release loResp