diff --git a/backend/crypt/crypt.go b/backend/crypt/crypt.go index 592760560..41c3a1925 100644 --- a/backend/crypt/crypt.go +++ b/backend/crypt/crypt.go @@ -72,6 +72,20 @@ NB If filename_encryption is "off" then this option will do nothing.`, Name: "password2", Help: "Password or pass phrase for salt. Optional but recommended.\nShould be different to the previous password.", IsPassword: true, + }, { + Name: "server_side_across_configs", + Default: false, + Help: `Allow server side operations (eg copy) to work across different crypt configs. + +Normally this option is not what you want, but if you have two crypts +pointing to the same backend you can use it. + +This can be used, for example, to change file name encryption type +without re-uploading all the data. Just make two crypt backends +pointing to two different directories with the single changed +parameter and use rclone move to move the files between the crypt +remotes.`, + Advanced: true, }, { Name: "show_mapping", Help: `For all files listed show how the names encrypt. @@ -181,6 +195,7 @@ func NewFs(name, rpath string, m configmap.Mapper) (fs.Fs, error) { CanHaveEmptyDirectories: true, SetTier: true, GetTier: true, + ServerSideAcrossConfigs: opt.ServerSideAcrossConfigs, }).Fill(f).Mask(wrappedFs).WrapsFs(f, wrappedFs) return f, err @@ -193,6 +208,7 @@ type Options struct { DirectoryNameEncryption bool `config:"directory_name_encryption"` Password string `config:"password"` Password2 string `config:"password2"` + ServerSideAcrossConfigs bool `config:"server_side_across_configs"` ShowMapping bool `config:"show_mapping"` }