Nick Craig-Wood
2b7957cc74
vfs: Only make the VFS cache if --vfs-cache-mode > Off
...
This stops the cache cleaner running unnecessarily and saves
resources.
This also helps with issue #2227 which was caused by a second mount
deleting objects in the first mounts cache.
2018-04-16 17:06:41 +01:00
Nick Craig-Wood
06e3fa3aba
mounttest: reduce duplicated code and improve test output #2154
...
The written out list of tests was replaced with a nested test for
mount and cmount. The tests for each VFS cache mode were also replaced
with nested tests which makes the output and the code much cleaner.
2018-04-08 15:04:14 +01:00
Nick Craig-Wood
e5be471ce0
Use io.SeekStart/End/Current constants now for go1.7+ #2154
2018-04-07 11:42:36 +01:00
Nick Craig-Wood
98a924602f
mount, cmount: set --attr-timeout default to 1s - fixes #2157
...
This works around these 3 problems:
* rclone using too much memory #2157
* rclone not serving files to samba
* https://forum.rclone.org/t/rclone-1-39-vs-1-40-mount-issue/5112
* excessive time listing directories #2095
2018-03-23 22:42:51 +00:00
Nick Craig-Wood
66c69fe620
mount: wait longer for consistency after rm in tests
2018-03-09 23:15:38 +00:00
Nick Craig-Wood
7713acf23d
mount: skip failing test TestFileModTimeWithOpenWriters on Windows
2018-03-09 23:15:38 +00:00
Nick Craig-Wood
473a388f6d
mount: disable failing test TestWriteFileDoubleClose on OSX
2018-03-09 23:15:37 +00:00
Remus Bunduc
70f07fd3ac
fs: add ChangeNotify and backend support for it ( #2094 )
...
* fs: rename DirChangeNotify to ChangeNotify
* cache: switch to ChangeNotify
* ChangeNotify: keep order of notifications
2018-03-08 22:03:34 +02:00
Nick Craig-Wood
fc32fee4ad
mount, cmount: add --attr-timeout to control attribute caching in kernel
...
This flag allows the attribute caching in the kernel to be controlled.
The default is 0s - no caching - which is recommended for filesystems
which can change outside the control of the kernel.
Previously this was at the default meaning it was 60s for mount and 1s
for cmount. This showed strange effects when files changed on the
remote not via the kernel. For instance Caddy would serve corrupted
files for a while when serving from an rclone mount when a file
changed on the remote.
2018-03-04 11:20:22 +00:00
ishuah
ebfeec9fb4
mount: run rclone mount in the background - fixes #723
2018-03-04 14:06:07 +03:00
Nick Craig-Wood
0f787e43b0
mount: link the nssm service manager for mount under Windows
2018-02-12 11:29:32 +00:00
Nick Craig-Wood
3a7bb7b2df
mount: update docs showing --vfs-cache-mode to work around limitations
2018-02-12 11:29:32 +00:00
Jody Frankowski
5e73acd40a
Clean up mount.go and vfs/help.go docs
...
* Title cleanups
* Typos
* `rclone mount vs rclone sync/copy` update with `File Caching`
2018-01-20 18:14:20 +00:00
Nick Craig-Wood
11da2a6c9b
Break the fs package up into smaller parts.
...
The purpose of this is to make it easier to maintain and eventually to
allow the rclone backends to be re-used in other projects without
having to use the rclone configuration system.
The new code layout is documented in CONTRIBUTING.
2018-01-15 17:51:14 +00:00
Nick Craig-Wood
b8b620f5c2
Move all backends into backend directory
2018-01-12 17:07:38 +00:00
Nick Craig-Wood
6d3df6f172
cmount: make tests more reliable on Windows
2017-11-28 20:39:24 +00:00
Nick Craig-Wood
af50f31f7d
mounttest: wait for Release after every Read to stop using in use files under Windows
2017-11-20 12:46:24 +00:00
Nick Craig-Wood
00b46a8b96
mounttest: wait for files to disappear from the directory listing
2017-11-20 12:46:24 +00:00
Nick Craig-Wood
b21f227bd3
mounttest: fix crash when FUSE not present
2017-11-20 12:46:24 +00:00
Nick Craig-Wood
e98e550021
mounttest: wait for all background Close/Release after writing a file
...
The filesystem does a certain amount of things asynchronously waiting
for the file to be released after writing it means everything should
be in a consistent state.
2017-11-20 12:46:23 +00:00
Nick Craig-Wood
eb3415db50
cmount: enable more tests for Windows
2017-11-20 12:46:23 +00:00
Nick Craig-Wood
9fbd8a6419
mounttest: fixes for running under Windows
...
* don't mount and unmount between cache runs - WinFSP doesn't suport it
* use OS paths for opening things
2017-11-20 12:46:23 +00:00
Nick Craig-Wood
981cfb1bec
mounttest: retry directory listings to account for slow updates on Windows
2017-11-20 12:46:22 +00:00
Nick Craig-Wood
57a5c67729
mounttest: run the tests for all 4 VFS cache modes
2017-11-20 12:46:21 +00:00
Nick Craig-Wood
d7908c06c9
mountlib: ensure we don't open files with read and write intent
2017-11-20 12:46:21 +00:00
Nick Craig-Wood
8951875c21
vfs,mount,cmount,mountlib: allow flags to be overriden by environment variables
2017-11-20 12:46:21 +00:00
Nick Craig-Wood
05a1e1532b
vfs,mount,cmount,serve: Add documentation for vfs caching modes
2017-11-20 12:46:21 +00:00
Fabian Möller
d8b3bf014d
mount: use sdnotify to signal systemd the mount is ready
...
When the NOTIFY_SOCKET environment variable is set notify systemd after
the mount is ready.
2017-11-20 11:03:10 +00:00
ishuah
31d2fb4e11
mount: Fix mount breaking on Windows - fixes #1827
2017-11-16 15:20:53 +03:00
Ernest Borowski
9fbff7bcab
mountlib: check if directory is not empty before mounting - fixes #1386
...
Signed-off-by: Ernest Borowski <er.borowski@gmail.com>
2017-11-14 21:24:31 +00:00
Nick Craig-Wood
e18122e88b
vfs: add tests and subsequent fixes
...
* Tests for VFS layer
* Small fixes found during testing
* Fix Close, Flush and Release behaviour for ReadFileHandle and WriteFileHandle
* Fix nil object bugs on File
2017-11-04 10:24:10 +00:00
Nick Craig-Wood
e8883e9fdb
vfs: factor flags into vfsflags and remove global variables
2017-11-03 12:59:59 +00:00
Nick Craig-Wood
c1aaff220d
Factor new vfs module out of cmd/mountlib
...
This is an OS style file system abstraction with directory caching
used in mount, cmount, serve webdav and serve http.
2017-11-03 12:59:59 +00:00
Nick Craig-Wood
6da6b2556b
mountlib: make directory entries be returned in sorted order
2017-11-03 12:59:59 +00:00
Nick Craig-Wood
ca19fd2d7e
mountlib: Make read/write file handles support more standard interfaces
...
Including Read, ReadAt, Seek, Close for read handles and Write,
WriteAt, Close for read handles.
2017-11-03 12:59:59 +00:00
Nick Craig-Wood
2fac74b517
mountlib: store only Node in *Dir removing DirEntry struct
2017-11-03 12:59:59 +00:00
Nick Craig-Wood
8b6daaa877
mountlib: add DirEntry() to Node interface
2017-11-03 12:59:59 +00:00
Nick Craig-Wood
3af9d63261
mountlib: add Remove and RemoveAll methods to Node
2017-11-03 12:59:59 +00:00
Nick Craig-Wood
c6cd2a5280
mountlib: add parent and entry to Dir
2017-11-03 12:59:59 +00:00
Nick Craig-Wood
0bb84efe75
mountlib: Rename Remove to RemoveName
2017-11-03 12:59:59 +00:00
Nick Craig-Wood
3ec15ac2bd
mountlib: make sure Node is always set in DirEntry
...
This simplifies the code and makes using the DirEntry.Node usable when
using ReadDir.
2017-11-03 12:59:58 +00:00
Nick Craig-Wood
750690503e
mountlib: make Node satisfy os.FileInfo interface
2017-11-03 12:59:58 +00:00
Nick Craig-Wood
54950d3423
mountlib: make more useful as a general purpose file system adaptor
2017-11-03 12:59:58 +00:00
Stefan Breunig
12405f9f41
fuse: re-use rcat to support uploads for all remotes ( fixes #1672 )
2017-09-16 22:49:08 +02:00
Nick Craig-Wood
ebc8361933
mount: Add notes on Windows limitations from Bill Zissimopoulos
2017-07-26 21:08:24 +01:00
Nick Craig-Wood
cd4895690a
fstest: Factor test initialisation into Initialise()
2017-07-26 16:38:33 +01:00
Nick Craig-Wood
de54fd4c64
mount: add docs for windows install
2017-07-23 13:05:02 +01:00
Nick Craig-Wood
c223464cd0
mount: fix panic on renames - fixes #1533
...
Make sure d.items is not nil and improve locking
2017-07-22 11:00:51 +01:00
Nick Craig-Wood
e7d04fc103
Create fs.Directory interface and use it everywhere
2017-06-30 14:26:59 +01:00
Nick Craig-Wood
e2d7d413ef
fs: rename BasicInfo to DirEntry
2017-06-30 14:26:58 +01:00