Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Create bucket in specific location (and region) #723

Closed
akashkrishnan opened this issue Jul 15, 2015 · 6 comments
Closed

Create bucket in specific location (and region) #723

akashkrishnan opened this issue Jul 15, 2015 · 6 comments
Assignees
Labels
api: storage Issues related to the Cloud Storage API. type: question Request for information or clarification. Not an issue.

Comments

@akashkrishnan
Copy link

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?

@jgeewax jgeewax added type: question Request for information or clarification. Not an issue. api: storage Issues related to the Cloud Storage API. labels Jul 15, 2015
@akashkrishnan akashkrishnan changed the title Create bucket in specific region Create bucket in specific location (and region) Jul 15, 2015
@stephenplusplus
Copy link
Contributor

Yes, although we should add an example in our docs, since it's not very clear. Your call to createBucket lets 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
});

@stephenplusplus stephenplusplus self-assigned this Jul 16, 2015
@jgeewax
Copy link
Contributor

jgeewax commented Jul 16, 2015

  1. Is this documented anywhere ? Seems like a common request...
  2. Is the location case sensitive?
  3. Should we make those constants variables to avoid typos?
  4. Ditto for storage class...?

@stephenplusplus
Copy link
Contributor

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 location property 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.ASIAEAST1 doesn'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 :)

@jgeewax
Copy link
Contributor

jgeewax commented Jul 16, 2015

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.

@stephenplusplus
Copy link
Contributor

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:

screen shot 2015-07-22 at 4 48 59 pm

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

  1. wishing that responsibility on the upstream API
  2. 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

@akashkrishnan
Copy link
Author

@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.

sofisl pushed a commit that referenced this issue Nov 17, 2022
- [ ] Regenerate this pull request now.

PiperOrigin-RevId: 468790263

Source-Link: googleapis/googleapis@873ab45

Source-Link: googleapis/googleapis-gen@cb6f37a
Copy-Tag: eyJwIjoiLmdpdGh1Yi8uT3dsQm90LnlhbWwiLCJoIjoiY2I2ZjM3YWVmZjJhMzQ3MmU0MGE3YmJhY2U4YzY3ZDc1ZTI0YmVlNSJ9

feat: Update Compute Engine API to revision 20220720 (#723)
Source-Link: googleapis/googleapis@60a0fa7

Source-Link: googleapis/googleapis-gen@ba1df1b
Copy-Tag: eyJwIjoiLmdpdGh1Yi8uT3dsQm90LnlhbWwiLCJoIjoiYmExZGYxYmU5M2Y1YTFhYTVjNjQ3ZmMyZjE5NWQ0MWIwMDc1YWE5MyJ9
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
api: storage Issues related to the Cloud Storage API. type: question Request for information or clarification. Not an issue.
Projects
None yet
Development

No branches or pull requests

3 participants