mirror of
https://github.com/rclone/rclone.git
synced 2025-06-24 18:31:24 +08:00
local: fix /path/to/file.rclonelink when -l/--links is in use
Before this change using /path/to/file.rclonelink would not find the file when using -l/--links. This fixes the problem by doing another stat call if the file wasn't found without the suffix if -l/--links is in use. It will also give an error if you refer to a symlink without its suffix which will not work because the limit to a single file filtering will be using the file name without the .rclonelink suffix. need ".rclonelink" suffix to refer to symlink when using -l/--links Before this change it would use the symlink as a directory which then would fail when listed. See: #6855
This commit is contained in:
@ -146,6 +146,20 @@ func TestSymlink(t *testing.T) {
|
||||
_, err = r.Flocal.NewObject(ctx, "symlink2.txt")
|
||||
require.Equal(t, fs.ErrorObjectNotFound, err)
|
||||
|
||||
// Check that NewFs works with the suffixed version and --links
|
||||
f2, err := NewFs(ctx, "local", filepath.Join(dir, "symlink2.txt"+linkSuffix), configmap.Simple{
|
||||
"links": "true",
|
||||
})
|
||||
require.Equal(t, fs.ErrorIsFile, err)
|
||||
require.Equal(t, dir, f2.(*Fs).root)
|
||||
|
||||
// Check that NewFs doesn't see the non suffixed version with --links
|
||||
f2, err = NewFs(ctx, "local", filepath.Join(dir, "symlink2.txt"), configmap.Simple{
|
||||
"links": "true",
|
||||
})
|
||||
require.Equal(t, errLinksNeedsSuffix, err)
|
||||
require.Nil(t, f2)
|
||||
|
||||
// Check reading the object
|
||||
in, err := o.Open(ctx)
|
||||
require.NoError(t, err)
|
||||
|
Reference in New Issue
Block a user