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:
parent
15a3ec8fa1
commit
64cf9ac911
2 changed files with 27 additions and 1 deletions
|
@ -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)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue