| Index: third_party/gsutil/gslib/addlhelp/naming.py
|
| diff --git a/third_party/gsutil/gslib/addlhelp/naming.py b/third_party/gsutil/gslib/addlhelp/naming.py
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..f655e12b268561c7f275e9f82c2abdb3ad5e1c20
|
| --- /dev/null
|
| +++ b/third_party/gsutil/gslib/addlhelp/naming.py
|
| @@ -0,0 +1,173 @@
|
| +# Copyright 2012 Google Inc. All Rights Reserved.
|
| +#
|
| +# Licensed under the Apache License, Version 2.0 (the "License");
|
| +# you may not use this file except in compliance with the License.
|
| +# You may obtain a copy of the License at
|
| +#
|
| +# http://www.apache.org/licenses/LICENSE-2.0
|
| +#
|
| +# Unless required by applicable law or agreed to in writing, software
|
| +# distributed under the License is distributed on an "AS IS" BASIS,
|
| +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
| +# See the License for the specific language governing permissions and
|
| +# limitations under the License.
|
| +
|
| +from gslib.help_provider import HELP_NAME
|
| +from gslib.help_provider import HELP_NAME_ALIASES
|
| +from gslib.help_provider import HELP_ONE_LINE_SUMMARY
|
| +from gslib.help_provider import HelpProvider
|
| +from gslib.help_provider import HELP_TEXT
|
| +from gslib.help_provider import HelpType
|
| +from gslib.help_provider import HELP_TYPE
|
| +
|
| +_detailed_help_text = ("""
|
| +<B>BUCKET NAME REQUIREMENTS</B>
|
| + Google Cloud Storage has a single namespace, so you will not be allowed
|
| + to create a bucket with a name already in use by another user. You can,
|
| + however, carve out parts of the bucket name space corresponding to your
|
| + company's domain name (see "DOMAIN NAMED BUCKETS").
|
| +
|
| + Bucket names must conform to standard DNS naming conventions. This is
|
| + because a bucket name can appear in a DNS record as part of a CNAME
|
| + redirect. In addition to meeting DNS naming requirements, Google Cloud
|
| + Storage imposes other requirements on bucket naming. At a minimum, your
|
| + bucket names must meet the following requirements:
|
| +
|
| + - Bucket names must contain only lowercase letters, numbers, dashes (-), and
|
| + dots (.).
|
| +
|
| + - Bucket names must start and end with a number or letter.
|
| +
|
| + - Bucket names must contain 3 to 63 characters. Names containing dots can
|
| + contain up to 222 characters, but each dot-separated component can be
|
| + no longer than 63 characters.
|
| +
|
| + - Bucket names cannot be represented as an IPv4 address in dotted-decimal
|
| + notation (for example, 192.168.5.4).
|
| +
|
| + - Bucket names cannot begin with the "goog" prefix.
|
| +
|
| + - For DNS compliance, you should not have a period adjacent to another
|
| + period or dash. For example, ".." or "-." or ".-" are not acceptable.
|
| +
|
| +
|
| +<B>OBJECT NAME REQUIREMENTS</B>
|
| + Object names can contain any sequence of Unicode characters, of length 1-1024
|
| + bytes when UTF-8 encoded. Object names must not contain CarriageReturn,
|
| + CarriageReturnLineFeed, or the XML-disallowed surrogate blocks (xFFFE
|
| + or xFFFF).
|
| +
|
| + We highly recommend that you avoid using control characters that are illegal
|
| + in XML 1.0 in your object names. These characters will cause XML listing
|
| + issues when you try to list your objects.
|
| +
|
| +
|
| +<B>DOMAIN NAMED BUCKETS</B>
|
| + You can carve out parts of the Google Cloud Storage bucket name space
|
| + by creating buckets with domain names (like "example.com").
|
| +
|
| + Before you can create a bucket name containing one or more '.' characters,
|
| + the following rules apply:
|
| + - If the name is a syntactically valid DNS name ending with a
|
| + currently-recognized top-level domain (such as .com), you will be required
|
| + to verify domain ownership.
|
| + - Otherwise you will be disallowed from creating the bucket.
|
| +
|
| + If your project needs to use a domain-named bucket, you need to have
|
| + a team member both verify the domain and create the bucket. This is
|
| + because Google Cloud Storage checks for domain ownership against the
|
| + user who creates the bucket, so the user who creates the bucket must
|
| + also be verified as an owner or manager of the domain.
|
| +
|
| + To verify as the owner or manager of a domain, use the Google Webmaster
|
| + Tools verification process. The Webmaster Tools verification process
|
| + provides three methods for verifying an owner or manager of a domain:
|
| +
|
| + 1. Adding a special Meta tag to a site's homepage.
|
| + 2. Uploading a special HTML file to a site.
|
| + 3. Adding a DNS TXT record to a domain's DNS configuration.
|
| +
|
| + Meta tag verification and HTML file verification are easier to perform and
|
| + are probably adequate for most situations. DNS TXT record verification is
|
| + a domain-based verification method that is useful in situations where a
|
| + site wants to tightly control who can create domain-named buckets. Once
|
| + a site creates a DNS TXT record to verify ownership of a domain, it takes
|
| + precedence over meta tag and HTML file verification. For example, you might
|
| + have two IT staff members who are responsible for managing your site, called
|
| + "example.com." If they complete the DNS TXT record verification, only they
|
| + would be able to create buckets called "example.com", "reports.example.com",
|
| + "downloads.example.com", and other domain-named buckets.
|
| +
|
| + Site-Based Verification
|
| +
|
| + If you have administrative control over the HTML files that make up a site,
|
| + you can use one of the site-based verification methods to verify that you
|
| + control or own a site. When you do this, Google Cloud Storage lets you
|
| + create buckets representing the verified site and any sub-sites - provided
|
| + nobody has used the DNS TXT record method to verify domain ownership of a
|
| + parent of the site.
|
| +
|
| + As an example, assume that nobody has used the DNS TXT record method to verify
|
| + ownership of the following domains: abc.def.example.com, def.example.com,
|
| + and example.com. In this case, Google Cloud Storage lets you create a bucket
|
| + named abc.def.example.com if you verify that you own or control any of the
|
| + following sites:
|
| +
|
| + http://abc.def.example.com
|
| + http://def.example.com
|
| + http://example.com
|
| +
|
| + Domain-Based Verification
|
| +
|
| + If you have administrative control over a domain's DNS configuration, you can
|
| + use the DNS TXT record verification method to verify that you own or control a
|
| + domain. When you use the domain-based verification method to verify that you
|
| + own or control a domain, Google Cloud Storage lets you create buckets that
|
| + represent any subdomain under the verified domain. Furthermore, Google Cloud
|
| + Storage prevents anybody else from creating buckets under that domain unless
|
| + you add their name to the list of verified domain owners or they have verified
|
| + their domain ownership by using the DNS TXT record verification method.
|
| +
|
| + For example, if you use the DNS TXT record verification method to verify your
|
| + ownership of the domain example.com, Google Cloud Storage will let you create
|
| + bucket names that represent any subdomain under the example.com domain, such
|
| + as abc.def.example.com, example.com/music/jazz, or abc.example.com/music/jazz.
|
| +
|
| + Using the DNS TXT record method to verify domain ownership supersedes
|
| + verification by site-based verification methods. For example, if you
|
| + use the Meta tag method or HTML file method to verify domain ownership
|
| + of http://example.com, but someone else uses the DNS TXT record method
|
| + to verify ownership of the example.com domain, Google Cloud Storage will
|
| + not allow you to create a bucket named example.com. To create the bucket
|
| + example.com, the domain owner who used the DNS TXT method to verify domain
|
| + ownership must add you to the list of verified domain owners for example.com.
|
| +
|
| + The DNS TXT record verification method is particularly useful if you manage
|
| + a domain for a large organization that has numerous subdomains because it
|
| + lets you control who can create buckets representing those domain names.
|
| +
|
| + Note: If you use the DNS TXT record verification method to verify ownership of
|
| + a domain, you cannot create a CNAME record for that domain. RFC 1034 disallows
|
| + inclusion of any other resource records if there is a CNAME resource record
|
| + present. If you want to create a CNAME resource record for a domain, you must
|
| + use the Meta tag verification method or the HTML file verification method.
|
| +
|
| +
|
| +""")
|
| +
|
| +
|
| +class CommandOptions(HelpProvider):
|
| + """Additional help about gsutil object and bucket naming."""
|
| +
|
| + help_spec = {
|
| + # Name of command or auxiliary help info for which this help applies.
|
| + HELP_NAME : 'naming',
|
| + # List of help name aliases.
|
| + HELP_NAME_ALIASES : ['domain', 'limits', 'name', 'names'],
|
| + # Type of help:
|
| + HELP_TYPE : HelpType.ADDITIONAL_HELP,
|
| + # One line summary of this help.
|
| + HELP_ONE_LINE_SUMMARY : 'Object and bucket naming',
|
| + # The full help text.
|
| + HELP_TEXT : _detailed_help_text,
|
| + }
|
|
|