![]() |
Chilkat HOME Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi DLL Go Java Node.js Objective-C PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(Unicode C) Initiate Resumable Upload SessionSee more Google Cloud Storage ExamplesInitiate a Google Cloud Storage resumable upload session..For more information, see https://cloud.google.com/storage/docs/performing-resumable-uploads
#include <C_CkHttpW.h> #include <C_CkJsonObjectW.h> #include <C_CkHttpResponseW.h> void ChilkatSample(void) { HCkHttpW http; HCkJsonObjectW jsonToken; BOOL success; HCkJsonObjectW jsonMetaData; const wchar_t *url; HCkHttpResponseW resp; int statusCode; const wchar_t *sessionUrl; // This example assumes the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. http = CkHttpW_Create(); jsonToken = CkJsonObjectW_Create(); success = CkJsonObjectW_LoadFile(jsonToken,L"qa_data/tokens/googleCloudStorage.json"); if (success == FALSE) { wprintf(L"%s\n",CkJsonObjectW_lastErrorText(jsonToken)); CkHttpW_Dispose(http); CkJsonObjectW_Dispose(jsonToken); return; } jsonMetaData = CkJsonObjectW_Create(); CkJsonObjectW_UpdateString(jsonMetaData,L"contentType",L"image/jpeg"); // Adds the "Authorization: Bearer <access_token>" header.. CkHttpW_putAuthToken(http,CkJsonObjectW_stringOf(jsonToken,L"access_token")); CkHttpW_SetUrlVar(http,L"bucket_name",L"chilkat-bucket-b"); CkHttpW_SetUrlVar(http,L"object_name",L"penguins2.jpg"); url = L"https://storage.googleapis.com/upload/storage/v1/b/{$bucket_name}/o?uploadType=resumable&name={$object_name}"; resp = CkHttpW_PText(http,L"POST",url,CkJsonObjectW_emit(jsonMetaData),L"utf-8",L"application/json",FALSE,FALSE); if (CkHttpW_getLastMethodSuccess(http) == FALSE) { wprintf(L"%s\n",CkHttpW_lastErrorText(http)); CkHttpW_Dispose(http); CkJsonObjectW_Dispose(jsonToken); CkJsonObjectW_Dispose(jsonMetaData); return; } statusCode = CkHttpResponseW_getStatusCode(resp); wprintf(L"response status code = %d\n",statusCode); sessionUrl = L""; if (statusCode != 200) { wprintf(L"%s\n",CkHttpResponseW_bodyStr(resp)); } else { // The session URL will be used to upload the file in chunks, in subsequent HTTP POSTs... sessionUrl = CkHttpResponseW_getHeaderField(resp,L"Location"); wprintf(L"Session URL = %s\n",sessionUrl); } CkHttpResponseW_Dispose(resp); CkHttpW_Dispose(http); CkJsonObjectW_Dispose(jsonToken); CkJsonObjectW_Dispose(jsonMetaData); } |
© 2000-2025 Chilkat Software, Inc. All Rights Reserved.