GoogleCloudPlatform / GoogleCloudPlatform/gsutil

implement gsutil raw mode

Open
#220 11 comments 5 reactions 0 assignees View on GitHub
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.