Skip to main content
This quickstart uses the Azure Blob Storage API at the application boundary and stores block blobs in Google Cloud Storage.
Azure API requests pass through Tensor9 Cloud Adapter to Google Cloud services.Azure API requests pass through Tensor9 Cloud Adapter to Google Cloud services.

Compatibility snapshot

The Blob Storage to Google Cloud profile supports block-blob CRUD and maps Azure ETag conditions to Cloud Storage generation behavior. Cloud Adapter retains lease state. Append blobs, page blobs, and tag queries are outside the profile. Direct Cloud Storage writers bypass adapter-held leases. Existing content, metadata, and lease state are not copied automatically.

Prerequisites

  • an installed Azure-origin Blob endpoint;
  • a Blob Storage to Cloud Storage service adapter;
  • an origin-side test credential;
  • a Google Cloud runtime identity with access to one test bucket;
  • a separate verification identity;
  • Python 3 with azure-storage-blob and gcloud.

Set values

The endpoint shape and origin authentication in this sample are deployment-specific placeholders. Use the exact account URL and caller credential mode supplied by your Cloud Adapter deployment. Target Google Cloud credentials remain adapter-owned.

Write through the Azure client

Verify Cloud Storage natively

Confirm content type, bytes, and target location. Keep Cloud Storage generation numbers in target-facing code and Azure ETags in origin-facing code.

Test error and concurrency behavior

Request a missing blob through the Azure client and retain its Azure error code, HTTP status, request ID, and diagnostic headers. If your application uses If-Match or leases, add a test where one writer has stale state. Run every lease-dependent writer through Cloud Adapter.

Clean up

Then confirm the current object is no longer readable with gcloud storage objects describe. Versioned or soft-delete-enabled targets can retain prior versions or recovery state; use an unversioned disposable target for this quickstart or remove the created version explicitly. Do not delete a shared bucket as part of object cleanup.

Before production

Test conditional requests, block upload sizes, listing and continuation, metadata, lease contention, retries, and direct-writer restrictions. Plan existing data migration separately. Define how you will resolve a timeout when the target write may have completed. Read the full Blob Storage profile and preserve this flow in CI/CD.