forked from TrueCloudLab/rclone
vfs: Add VFS --links command line switch
This will be used to enable links support for the various mount engines in a follow up commit.
This commit is contained in:
parent
46de095e9c
commit
5c8bd27c7f
4 changed files with 10 additions and 0 deletions
|
@ -258,6 +258,7 @@ read of the modification time takes a transaction.
|
|||
--no-modtime Don't read/write the modification time (can speed things up).
|
||||
--no-seek Don't allow seeking in files.
|
||||
--read-only Only allow read-only access.
|
||||
--links Translate symlinks to/from regular files with a '.rclonelink' extension.
|
||||
|
||||
Sometimes rclone is delivered reads or writes out of order. Rather
|
||||
than seeking rclone will wait a short time for the in sequence read or
|
||||
|
|
|
@ -227,6 +227,11 @@ func New(f fs.Fs, opt *vfscommon.Options) *VFS {
|
|||
fs.Logf(f, "--vfs-cache-mode writes or full is recommended for this remote as it can't stream")
|
||||
}
|
||||
|
||||
// Warn if we handle symlinks
|
||||
if vfs.Opt.Links {
|
||||
fs.Logf(f, "Symlinks support enabled")
|
||||
}
|
||||
|
||||
vfs.SetCacheMode(vfs.Opt.CacheMode)
|
||||
|
||||
// Pin the Fs into the cache so that when we use cache.NewFs
|
||||
|
|
|
@ -13,6 +13,7 @@ type Options struct {
|
|||
NoSeek bool // don't allow seeking if set
|
||||
NoChecksum bool // don't check checksums if set
|
||||
ReadOnly bool // if set VFS is read only
|
||||
Links bool // if set VFS handle symlinks
|
||||
NoModTime bool // don't read mod times for files
|
||||
DirCacheTime time.Duration // how long to consider directory listing cache valid
|
||||
PollInterval time.Duration
|
||||
|
@ -45,6 +46,7 @@ var DefaultOpt = Options{
|
|||
DirCacheTime: 5 * 60 * time.Second,
|
||||
PollInterval: time.Minute,
|
||||
ReadOnly: false,
|
||||
Links: false,
|
||||
Umask: 0,
|
||||
UID: ^uint32(0), // these values instruct WinFSP-FUSE to use the current user
|
||||
GID: ^uint32(0), // overridden for non windows in mount_unix.go
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
package vfsflags
|
||||
|
||||
import (
|
||||
"github.com/rclone/rclone/fs"
|
||||
"github.com/rclone/rclone/fs/config/flags"
|
||||
"github.com/rclone/rclone/fs/rc"
|
||||
"github.com/rclone/rclone/vfs/vfscommon"
|
||||
|
@ -24,6 +25,7 @@ func AddFlags(flagSet *pflag.FlagSet) {
|
|||
flags.DurationVarP(flagSet, &Opt.DirCacheTime, "dir-cache-time", "", Opt.DirCacheTime, "Time to cache directory entries for")
|
||||
flags.DurationVarP(flagSet, &Opt.PollInterval, "poll-interval", "", Opt.PollInterval, "Time to wait between polling for changes, must be smaller than dir-cache-time and only on supported remotes (set 0 to disable)")
|
||||
flags.BoolVarP(flagSet, &Opt.ReadOnly, "read-only", "", Opt.ReadOnly, "Only allow read-only access")
|
||||
flags.BoolVarP(flagSet, &Opt.Links, "links", "l", Opt.Links, "Translate symlinks to/from regular files with a '"+fs.LinkSuffix+"' extension")
|
||||
flags.FVarP(flagSet, &Opt.CacheMode, "vfs-cache-mode", "", "Cache mode off|minimal|writes|full")
|
||||
flags.DurationVarP(flagSet, &Opt.CachePollInterval, "vfs-cache-poll-interval", "", Opt.CachePollInterval, "Interval to poll the cache for stale objects")
|
||||
flags.DurationVarP(flagSet, &Opt.CacheMaxAge, "vfs-cache-max-age", "", Opt.CacheMaxAge, "Max age of objects in the cache")
|
||||
|
|
Loading…
Add table
Reference in a new issue