mirror of
https://github.com/rclone/rclone.git
synced 2025-12-12 06:24:14 +01:00
add rclone config string for making connection strings #8859
This commit is contained in:
@@ -37,6 +37,7 @@ func init() {
|
|||||||
configCommand.AddCommand(configDisconnectCommand)
|
configCommand.AddCommand(configDisconnectCommand)
|
||||||
configCommand.AddCommand(configUserInfoCommand)
|
configCommand.AddCommand(configUserInfoCommand)
|
||||||
configCommand.AddCommand(configEncryptionCommand)
|
configCommand.AddCommand(configEncryptionCommand)
|
||||||
|
configCommand.AddCommand(configStringCommand)
|
||||||
}
|
}
|
||||||
|
|
||||||
var configCommand = &cobra.Command{
|
var configCommand = &cobra.Command{
|
||||||
@@ -613,3 +614,55 @@ If the config file is not encrypted it will return a non zero exit code.`, "|",
|
|||||||
return nil
|
return nil
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var configStringCommand = &cobra.Command{
|
||||||
|
Use: "string <remote>",
|
||||||
|
Short: `Print connection string for a single remote.`,
|
||||||
|
Long: strings.ReplaceAll(`Print a connection string for a single remote.
|
||||||
|
|
||||||
|
The [connection strings](/docs/#connection-strings) can be used
|
||||||
|
wherever a remote is needed and can be more convenient than using the
|
||||||
|
config file, especially if using the RC API.
|
||||||
|
|
||||||
|
Backend parameters may be provided to the command also.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
|||sh
|
||||||
|
$ rclone config string s3:rclone --s3-no-check-bucket
|
||||||
|
:s3,access_key_id=XXX,no_check_bucket,provider=AWS,region=eu-west-2,secret_access_key=YYY:rclone
|
||||||
|
|||
|
||||||
|
|
||||||
|
**NB** the strings are not quoted for use in shells (eg bash,
|
||||||
|
powershell, windows cmd). Most will work if enclosed in "double
|
||||||
|
quotes", however connection strings that contain double quotes will
|
||||||
|
require further quoting which is very shell dependent.
|
||||||
|
|
||||||
|
`, "|", "`"),
|
||||||
|
Annotations: map[string]string{
|
||||||
|
"versionIntroduced": "v1.72",
|
||||||
|
},
|
||||||
|
RunE: func(command *cobra.Command, args []string) error {
|
||||||
|
cmd.CheckArgs(1, 1, command, args)
|
||||||
|
remote := args[0]
|
||||||
|
fsInfo, _, fsPath, m, err := fs.ConfigFs(remote)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
// Find the overridden options and construct the string
|
||||||
|
overridden := fsInfo.Options.NonDefault(m)
|
||||||
|
var out strings.Builder
|
||||||
|
out.WriteRune(':')
|
||||||
|
out.WriteString(fsInfo.Name)
|
||||||
|
config := overridden.String()
|
||||||
|
if config != "" {
|
||||||
|
out.WriteRune(',')
|
||||||
|
out.WriteString(config)
|
||||||
|
}
|
||||||
|
out.WriteRune(':')
|
||||||
|
out.WriteString(fsPath)
|
||||||
|
fmt.Println(out.String())
|
||||||
|
return nil
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|||||||
@@ -384,6 +384,9 @@ does not work on Windows.)
|
|||||||
rclone copy ':http,url="https://example.com":path/to/dir' /tmp/dir
|
rclone copy ':http,url="https://example.com":path/to/dir' /tmp/dir
|
||||||
```
|
```
|
||||||
|
|
||||||
|
You can use [rclone config string](/commands/rclone_config_string/) to
|
||||||
|
convert a remote into a connection string.
|
||||||
|
|
||||||
#### Connection strings, config and logging
|
#### Connection strings, config and logging
|
||||||
|
|
||||||
If you supply extra configuration to a backend by command line flag,
|
If you supply extra configuration to a backend by command line flag,
|
||||||
|
|||||||
Reference in New Issue
Block a user