Sample code for 30+ languages & platforms
Perl

Initiate Resumable Upload Session

See more Google Cloud Storage Examples

Initiate a Google Cloud Storage resumable upload session..

Chilkat Perl Downloads

Perl
use chilkat();

$success = 0;

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

$http = chilkat::CkHttp->new();

$jsonToken = chilkat::CkJsonObject->new();
$success = $jsonToken->LoadFile("qa_data/tokens/googleCloudStorage.json");
if ($success == 0) {
    print $jsonToken->lastErrorText() . "\r\n";
    exit;
}

$jsonMetaData = chilkat::CkJsonObject->new();
$jsonMetaData->UpdateString("contentType","image/jpeg");

# Adds the "Authorization: Bearer <access_token>" header..
$http->put_AuthToken($jsonToken->stringOf("access_token"));

$http->SetUrlVar("bucket_name","chilkat-bucket-b");
$http->SetUrlVar("object_name","penguins2.jpg");
$url = "https://storage.googleapis.com/upload/storage/v1/b/{$bucket_name}/o?uploadType=resumable&name={$object_name}";
$resp = chilkat::CkHttpResponse->new();
$success = $http->HttpJson("POST",$url,$jsonMetaData,"application/json",$resp);
if ($success == 0) {
    print $http->lastErrorText() . "\r\n";
    exit;
}

$statusCode = $resp->get_StatusCode();
print "response status code = " . $statusCode . "\r\n";

$sessionUrl = "";

if ($statusCode != 200) {
    print $resp->bodyStr() . "\r\n";
}
else {
    # The session URL will be used to upload the file in chunks, in subsequent HTTP POSTs...
    $sessionUrl = $resp->getHeaderField("Location");
    print "Session URL = " . $sessionUrl . "\r\n";
}