mirror of
https://github.com/rclone/rclone.git
synced 2024-11-25 09:54:44 +01:00
dropbox: add option to override root namespace
This lets you, for example, use shared folders without mounting them into your home namespace first, as long as you know their namespace ID. (The --dropbox-shared-folders flag could thus be changed to not need to mount the shared folder first, but I'm not doing that here as it's a behavior change, who knows, maybe somebody relies on it.)
This commit is contained in:
parent
aed77a8fb2
commit
7c0645dda9
@ -216,7 +216,10 @@ are supported.
|
|||||||
|
|
||||||
Note that we don't unmount the shared folder afterwards so the
|
Note that we don't unmount the shared folder afterwards so the
|
||||||
--dropbox-shared-folders can be omitted after the first use of a particular
|
--dropbox-shared-folders can be omitted after the first use of a particular
|
||||||
shared folder.`,
|
shared folder.
|
||||||
|
|
||||||
|
See also --dropbox-root-namespace for an alternative way to work with shared
|
||||||
|
folders.`,
|
||||||
Default: false,
|
Default: false,
|
||||||
Advanced: true,
|
Advanced: true,
|
||||||
}, {
|
}, {
|
||||||
@ -237,6 +240,11 @@ shared folder.`,
|
|||||||
encoder.EncodeDel |
|
encoder.EncodeDel |
|
||||||
encoder.EncodeRightSpace |
|
encoder.EncodeRightSpace |
|
||||||
encoder.EncodeInvalidUtf8,
|
encoder.EncodeInvalidUtf8,
|
||||||
|
}, {
|
||||||
|
Name: "root_namespace",
|
||||||
|
Help: "Specify a different Dropbox namespace ID to use as the root for all paths.",
|
||||||
|
Default: "",
|
||||||
|
Advanced: true,
|
||||||
}}...), defaultBatcherOptions.FsOptions("For full info see [the main docs](https://rclone.org/dropbox/#batch-mode)\n\n")...),
|
}}...), defaultBatcherOptions.FsOptions("For full info see [the main docs](https://rclone.org/dropbox/#batch-mode)\n\n")...),
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
@ -253,6 +261,7 @@ type Options struct {
|
|||||||
AsyncBatch bool `config:"async_batch"`
|
AsyncBatch bool `config:"async_batch"`
|
||||||
PacerMinSleep fs.Duration `config:"pacer_min_sleep"`
|
PacerMinSleep fs.Duration `config:"pacer_min_sleep"`
|
||||||
Enc encoder.MultiEncoder `config:"encoding"`
|
Enc encoder.MultiEncoder `config:"encoding"`
|
||||||
|
RootNsid string `config:"root_namespace"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// Fs represents a remote dropbox server
|
// Fs represents a remote dropbox server
|
||||||
@ -502,8 +511,11 @@ func NewFs(ctx context.Context, name, root string, m configmap.Mapper) (fs.Fs, e
|
|||||||
|
|
||||||
f.features.Fill(ctx, f)
|
f.features.Fill(ctx, f)
|
||||||
|
|
||||||
// If root starts with / then use the actual root
|
if f.opt.RootNsid != "" {
|
||||||
if strings.HasPrefix(root, "/") {
|
f.ns = f.opt.RootNsid
|
||||||
|
fs.Debugf(f, "Overriding root namespace to %q", f.ns)
|
||||||
|
} else if strings.HasPrefix(root, "/") {
|
||||||
|
// If root starts with / then use the actual root
|
||||||
var acc *users.FullAccount
|
var acc *users.FullAccount
|
||||||
err = f.pacer.Call(func() (bool, error) {
|
err = f.pacer.Call(func() (bool, error) {
|
||||||
acc, err = f.users.GetCurrentAccount()
|
acc, err = f.users.GetCurrentAccount()
|
||||||
|
Loading…
Reference in New Issue
Block a user