gcloud alpha storage sign-url URL [URL …] [--duration=DURATION, -d DURATION; default=3600] [--headers=[KEY=VALUE,…]] [--http-verb=HTTP_VERB, -m HTTP_VERB; default="GET"] [--path-style-url] [--private-key-file=PRIVATE_KEY_FILE] [--private-key-password=PRIVATE_KEY_PASSWORD, -p PRIVATE_KEY_PASSWORD] [--query-params=[KEY=VALUE,…]] [--region=REGION, -r REGION] [GCLOUD_WIDE_FLAG …]
(ALPHA) gcloud alpha storage sign-url will generate a
signed URL that embeds authentication data so the URL can be used by someone who
does not have a Google account. Use the global
--impersonate-service-account flag to
specify the service account that will be used to sign the specified URL or
authenticate with a service account directly. Otherwise, a service account key
is required. Please see the Signed
URLs documentation for background about signed URLs.
Note, gcloud alpha storage sign-url does not support operations on
sub-directories. For example, unless you have an object named
some-directory/ stored inside the bucket some-bucket,
the following command returns an error: gcloud alpha storage sign-url
gs://some-bucket/some-directory/.
gcloud alpha storage sign-url gs://my-bucket/file.txt --duration=10m --impersonate-service-account=sa@my-project.iam.gserviceaccount.comTo create a signed url that will bill to my-billing-project when already authenticated as a service account:
gcloud alpha storage sign-url gs://my-bucket/file.txt --query-params=userProject=my-billing-projectTo create a signed url, valid for one hour, for uploading a plain text file via HTTP PUT:
gcloud alpha storage sign-url gs://my-bucket/file.txt --http-verb=PUT --duration=1h --headers=content-type=text/plain --impersonate-service-account=sa@my-project.iam.gserviceaccount.comTo create a signed URL that initiates a resumable upload for a plain text file using a private key file:
gcloud alpha storage sign-url gs://my-bucket/file.txt --http-verb=POST --headers=x-goog-resumable=start,content-type=text/plain --private-key-file=key.jsonURL [URL …]--duration=DURATION, -d DURATION; default=3600The max duration allowed is 12 hours. This limitation exists because the system-managed key used to sign the URL may not remain valid after 12 hours.
Alternatively, the max duration allowed is 7 days when signing with either the--private-key-file flag or an account that
authorized with gcloud auth
activate-service-account.
--headers=[KEY=VALUE,…]--http-verb=HTTP_VERB, -m HTTP_VERB; default="GET"x-goog-resumable:start
header in the request or else signature validation will fail.
--path-style-url--private-key-file=PRIVATE_KEY_FILEnotasecret).
Note: Service account keys are a security risk if not managed correctly. Review
best
practices for managing service account keys before using this option.
--private-key-password=PRIVATE_KEY_PASSWORD, -p PRIVATE_KEY_PASSWORD--query-params=[KEY=VALUE,…]--region=REGION, -r REGIONauto which will cause
gcloud alpha storage sign-url to fetch the region for the resource. When
auto-detecting the region, the current user's credentials, not the credentials
from PRIVATE_KEY_FILE, are used to fetch the bucket's metadata.
--access-token-file,
--account, --billing-project,
--configuration,
--flags-file,
--flatten, --format, --help, --impersonate-service-account,
--log-http,
--project, --quiet, --trace-token, --user-output-enabled,
--verbosity.
Run $ gcloud help for details.
gcloud storage sign-url
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2026-05-27 UTC.