mirror of
https://github.com/rclone/rclone.git
synced 2024-11-22 04:04:46 +08:00
vfs: fix cache encoding with special characters - #7760
The vfs use the hardcoded OS encoding when creating temp file, but decode it with encoding for the local filesystem (--local-encoding) when copying it to remote. This caused failures when the filenames contained special characters. The hardcoded OS encoding is now used uniformly.
This commit is contained in:
parent
e041796bfe
commit
2a615f4681
|
@ -229,8 +229,8 @@ func main() {
|
|||
fatalW(fd.WriteString(" "))("Write:")
|
||||
}
|
||||
in, out := buildTestString(
|
||||
[]mapping{getMapping(m.mask)}, // pick
|
||||
[]mapping{getMapping(encoder.EncodeZero)}, // quote
|
||||
[]mapping{getMapping(m.mask)}, // pick
|
||||
[]mapping{getMapping(encoder.EncodeZero)}, // quote
|
||||
printables, fullwidthPrintables, encodables, encoded, greek) // fill
|
||||
fatalW(fmt.Fprintf(fd, `{ // %d
|
||||
mask: %s,
|
||||
|
|
|
@ -212,7 +212,7 @@ func (c *Cache) createItemDir(name string) (string, error) {
|
|||
|
||||
// getBackend gets a backend for a cache root dir
|
||||
func getBackend(ctx context.Context, parentPath string, name string, relativeDirPath string) (fs.Fs, error) {
|
||||
path := fmt.Sprintf("%s/%s/%s", parentPath, name, relativeDirPath)
|
||||
path := fmt.Sprintf(":local,encoding='%v':%s/%s/%s", encoder.OS, parentPath, name, relativeDirPath)
|
||||
return fscache.Get(ctx, path)
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user