diff --git a/cmd/tusd/cli/flags.go b/cmd/tusd/cli/flags.go index 5e80efb..221f231 100644 --- a/cmd/tusd/cli/flags.go +++ b/cmd/tusd/cli/flags.go @@ -3,6 +3,7 @@ package cli import ( "flag" "path/filepath" + "strings" ) var Flags struct { @@ -45,7 +46,7 @@ func ParseFlags() { flag.StringVar(&Flags.S3ObjectPrefix, "s3-object-prefix", "", "Prefix for S3 object names") flag.StringVar(&Flags.S3Endpoint, "s3-endpoint", "", "Endpoint to use S3 compatible implementations like minio (requires s3-bucket to be pass)") flag.StringVar(&Flags.GCSBucket, "gcs-bucket", "", "Use Google Cloud Storage with this bucket as storage backend (requires the GCS_SERVICE_ACCOUNT_FILE environment variable to be set)") - flag.StringVar(&Flags.GCSObjectPrefix, "gcs-object-prefix", "", "Prefix for GCS object names") + flag.StringVar(&Flags.GCSObjectPrefix, "gcs-object-prefix", "", "Prefix for GCS object names (can't contain underscore character)") flag.StringVar(&Flags.FileHooksDir, "hooks-dir", "", "Directory to search for available hooks scripts") flag.StringVar(&Flags.HttpHooksEndpoint, "hooks-http", "", "An HTTP endpoint to which hook events will be sent to") flag.IntVar(&Flags.HttpHooksRetry, "hooks-http-retry", 3, "Number of times to retry on a 500 or network timeout") @@ -76,4 +77,9 @@ func ParseFlags() { "neither flag was provided. Please consult `tusd -help` for " + "more information on these options.") } + + if Flags.GCSObjectPrefix != "" && strings.Contains(Flags.GCSObjectPrefix, "_") { + stderr.Fatalf("gcs-object-prefix value (%s) can't contain underscore. "+ + "Please remove underscore from the value", Flags.GCSObjectPrefix) + } }