GoogleCloudPlatform / GoogleCloudPlatform/gsutil
implement gsutil raw mode
- Dominant language
- Python
- Stars
- 918
- Forks
- 335
- PR merge metrics
- No merged PRs in 30d
Description
gsutil parses URIs on the command line for wildcards and version numbers. Because GCS doesn't reserve the wildcard and version delimiter chars from the object name charset, it's possible to construct URIs that don't work well with gsutil. For example, if you named an object "bucket/object\*\*27", you couldn't use gsutil with this object name because gsutil would interpret the URI gs://bucket/object\*\*27 as a wildcarding request, and match other object names in addition to this one. Similarly, if you create an object called "bucket/object#1360101917269000.2", attempting to use the URI gs://bucket/object#1360101917269000.2 with gsutil would cause gsutil to interpret it as the object gs://bucket/object with generation 1360101917269000 and metageneration 2.
To work around cases where this causes a problem we could implement a gsutil -r (top-level) command line option, that tells gsutil to use "raw" URI processing -- i.e., not to interpret any of the wildcard and version delimiter chars, and instead just to build object names literally from the passed string. gsutil couldn't support wildcarding or version-specific handling features with this mode, but at least a user could copy such files individually to/from GCS.
Contributor guide
Assessment
This issue has not been assessed yet.