Repository navigation
Create bucket in specific location (and region) #723
Description
Activity
- addedtype: questionRequest for information or clarification. Not an issue.Request for information or clarification. Not an issue.api: storageIssues related to the Cloud Storage API.Issues related to the Cloud Storage API.
on Jul 15, 2015 - changed the title
[-]Create bucket in specific region[/-][+]Create bucket in specific location (and region)[/+]on Jul 15, 2015 Yes, although we should add an example in our docs, since it's not very clear. Your call to
createBucketlets you provide an object that we pass up to what the API here expects (under "Request body").storage.createBucket('your-new-bucket', { location: 'ASIA-EAST1', storageClass: 'DURABLE_REDUCED_AVAILABILITY' }, function(err, bucket, apiResponse) { // bucket.metadata.location = 'ASIA-EAST1 });
- Is this documented anywhere ? Seems like a common request...
- Is the location case sensitive?
- Should we make those constants variables to avoid typos?
- Ditto for storage class...?
Is the location case sensitive?
It is. This is the format the upstream API expects. We leave this window open so we don't have to design custom support for every use case.
Should we make those constants variables to avoid typos?
Ditto for storage class...?The more we localize, the more likely we are to go stale as the upstream moves forward or makes changes. To know what we've made constants, the user would have to hit our docs. I'd rather pass them onto the official JSON API docs and let them do the explaining: https://cloud.google.com/storage/docs/json_api/v1/buckets/insert
As an example of doc modularity, the insert docs themselves for the
locationproperty deflect to another thorough doc site:location string The location of the bucket. Object data for objects in the bucket resides in physical storage within this region. Defaults to US. See the developer's guide for the authoritative list.
Is this documented anywhere ?
Not currently, but I intend to. In that example, it will link out to the places I linked above to complete the story.
Seems like a common request...
While I went off on all my reasons not to localize and blah blah, we do want to make exceptions for really common cases. If you think this is one of them, can you think of a way we can make it easier than docs & links? Maybe a way other libraries have done it? I'm specifically afraid of making constants out of locations that may change. Also,
storage.locations.ASIAEAST1doesn't seem easier to remember or more developer friendly than just accepting a string 'ASIA-EAST1`.
@akashkrishnan feel free to chime in with any thoughts on the way you would prefer creating a bucket in a location to look like :)
I'd rather pass them onto the official JSON API docs
That's a fair point, but it means also that instead of getting a "variable not found" you get a "bad request". I'd be fine with this so long as the error message the user gets is helpful and says more than "bad request" (maybe "the zone provided (us-aisa-1a) wasn't valid")
If it doesn't today, we should create an issue for that.
Not currently, but I intend to.
Cool.
so long as the error message the user gets is helpful and says more than "bad request" (maybe "the zone provided (us-aisa-1a) wasn't valid")
:( Not helpful:
https://cloud.google.com/storage/docs/regional-buckets has a list of regional locations:
- ASIA-EAST1 - Eastern Asia-Pacific
- US-CENTRAL1 - Central United States
- US-CENTRAL2 - Central United States
- US-EAST1 - Eastern United States
- US-EAST2 - Eastern United States
- US-EAST3 - Eastern United States
- US-WEST1 - Western United States
Should we check the provided location against this list? I'm more in favor of
- wishing that responsibility on the upstream API
- trusting users know which value is likely to be wrong. If confused, they can get more clarity from our yet to be elaborted docs that link to the list of locations above
@stephenplusplus Yes, your response and update to the documentation make sense, and it is exactly what I was expecting---just needed it written out in the documentation for clarity.
As for the location and region constants, I would also lean towards points 1 and 2, just because it would make it easier to maintain this API.
- added a commit that references this issue
on Nov 17, 2022 - added a commit that references this issue
on Jul 23, 2025 - added 2 commits that reference this issue
on Jan 14, 2026 4 remaining items
- added 6 commits that reference this issue
on Jan 28, 2026 - added a commit that references this issue
on Feb 25, 2026 - added 2 commits that reference this issue
on Mar 5, 2026 - added a commit that references this issue
on Mar 18, 2026 - added a commit that references this issue
on Mar 27, 2026 - added a commit that references this issue
on Mar 27, 2026 - added a commit that references this issue
on May 5, 2026

I did a quick search in the issues (and documentation) and did not find a way to create buckets in specific locations and regions. Does the API support this?