rclone/fs
Martin Czygan 5de9278650
fs/cache: make sure we call the Shutdown method on backends
This change ensures we call the Shutdown method on backends when
they drop out of the fs/cache and at program exit.

Some backends implement the optional fs.Shutdowner interface. Until now,
Shutdown is only checked and called, when a backend is wrapped (e.g.
crypt, compress, ...).

To have a general way to perform operations at the end of the backend
lifecycle with proper error handling, we can call Shutdown at cache
clear time.

We add a finalize hook to the cache which will be called when values
drop out of the cache.

Previous discussion: https://forum.rclone.org/t/31336
2022-06-28 12:51:59 +01:00
..
accounting accounting: fix unknown length file transfers count 3 transfers each #6213 2022-06-27 17:56:03 +01:00
asyncreader Fix lint issues reported by staticcheck 2022-06-13 21:13:50 +02:00
cache fs/cache: make sure we call the Shutdown method on backends 2022-06-28 12:51:59 +01:00
chunkedreader Spelling fixes 2020-10-14 15:21:31 +01:00
chunksize chunksize: initial implementation of chunksize helper lib 2022-05-13 09:25:48 +01:00
config Error strings should not be capitalized 2022-06-23 23:26:02 +02:00
dirtree dirtree: fix tests with -fast-list 2022-06-09 14:26:43 +01:00
driveletter build: apply gofmt from golang 1.17 2021-09-09 20:43:59 +03:00
filter Error strings should not be capitalized 2022-06-23 23:26:02 +02:00
fserrors Fix lint issues reported by staticcheck 2022-06-13 21:13:50 +02:00
fshttp fshttp: add --disable-http-keep-alives to disable HTTP Keep Alives 2022-06-16 22:13:50 +01:00
fspath Fix lint issues reported by staticcheck 2022-06-13 21:13:50 +02:00
hash Error strings should not be capitalized 2022-06-23 23:26:02 +02:00
list Remove github.com/pkg/errors and replace with std library version 2021-11-07 11:53:30 +00:00
log Fix lint issues reported by staticcheck 2022-06-13 21:13:50 +02:00
march Remove github.com/pkg/errors and replace with std library version 2021-11-07 11:53:30 +00:00
object Remove backend dependency from fs/hash 2019-10-01 16:29:58 +01:00
operations Error strings should not be capitalized 2022-06-23 23:26:02 +02:00
rc Error strings should not be capitalized 2022-06-23 23:26:02 +02:00
sync Error strings should not be capitalized 2022-06-23 23:26:02 +02:00
walk filter: allow multiple --exclude-if-present flags - fixes #6219 2022-06-08 17:11:52 +02:00
backend_config_test.go fs: add --all to rclone config create/update to ask all the config questions #3455 2021-05-14 14:07:44 +01:00
backend_config.go config: add utility function for backend config with list and custom input 2022-06-08 17:56:37 +02:00
bwtimetable_test.go Use binary prefixes for size and rate units 2021-04-27 02:25:52 +03:00
bwtimetable.go Remove github.com/pkg/errors and replace with std library version 2021-11-07 11:53:30 +00:00
config_list_test.go fs: fix tests for *SepList 2018-08-21 10:58:59 +01:00
config_list.go Make flags show up with their proper names, eg SizeSuffix rather than int 2019-02-07 11:57:26 +00:00
config_test.go fs: deglobalise the config #4685 2020-11-26 16:40:12 +00:00
config.go fshttp: add --disable-http-keep-alives to disable HTTP Keep Alives 2022-06-16 22:13:50 +01:00
configmap.go config: fix in memory config not saving on the fly backend config 2021-07-20 12:09:38 +01:00
countsuffix_test.go Use decimal prefixes for counts 2021-04-27 02:25:52 +03:00
countsuffix.go Remove github.com/pkg/errors and replace with std library version 2021-11-07 11:53:30 +00:00
cutoffmode_test.go fs: Add string alternatives for setting options over the rc 2021-02-07 14:56:41 +00:00
cutoffmode.go Error strings should not be capitalized 2022-06-23 23:26:02 +02:00
daemon_other.go mountlib: correctly daemonize for compatibility with automount - #5593 2021-10-02 23:45:16 +03:00
daemon_unix.go mountlib: correctly daemonize for compatibility with automount - #5593 2021-10-02 23:45:16 +03:00
deletemode.go Break the fs package up into smaller parts. 2018-01-15 17:51:14 +00:00
dir.go cmd/dedupe: make largest directory primary to minimize data moved (#3648) 2021-03-11 20:40:29 +03:00
direntries_test.go build: fix up package paths after repo move 2019-07-28 18:47:38 +01:00
direntries.go fs: Allow sync of a file and a directory with the same name 2019-06-09 15:57:05 +01:00
dump_test.go Error strings should not be capitalized 2022-06-23 23:26:02 +02:00
dump.go Error strings should not be capitalized 2022-06-23 23:26:02 +02:00
features.go fs: split overgrown fs.go (#5405) 2021-06-14 14:42:49 +03:00
fingerprint_test.go test: Add context to mockfs.NewFs #3257 #4685 2020-11-09 18:05:54 +00:00
fingerprint.go fs: add Fingerprint to detect changes in an object 2020-06-30 12:01:36 +01:00
fs_test.go Remove github.com/pkg/errors and replace with std library version 2021-11-07 11:53:30 +00:00
fs.go Remove github.com/pkg/errors and replace with std library version 2021-11-07 11:53:30 +00:00
log_test.go fs: Add string alternatives for setting options over the rc 2021-02-07 14:56:41 +00:00
log.go Error strings should not be capitalized 2022-06-23 23:26:02 +02:00
mimetype.go Do not override mime types from os defaults 2021-10-18 13:28:22 +01:00
mount_helper_test.go rclone.mount: ignore _netdev mount argument - FIxes #5808 2022-05-12 20:27:13 +01:00
mount_helper.go rclone.mount: ignore _netdev mount argument - FIxes #5808 2022-05-12 20:27:13 +01:00
newfs.go fs: split overgrown fs.go (#5405) 2021-06-14 14:42:49 +03:00
open_options_test.go fs: fix FixRangeOption to do nothing on unknown sized objects 2022-05-12 08:49:20 +01:00
open_options.go Error strings should not be capitalized 2022-06-23 23:26:02 +02:00
pacer.go fs: split overgrown fs.go (#5405) 2021-06-14 14:42:49 +03:00
parseduration_test.go filter: fix timezone of --min-age/-max-age from UTC to local as documented 2022-03-28 11:47:27 +01:00
parseduration.go fs: Implement fs.Time 2022-04-28 16:29:13 +01:00
parsetime_test.go fs: Implement fs.Time 2022-04-28 16:29:13 +01:00
parsetime.go fs: Implement fs.Time 2022-04-28 16:29:13 +01:00
registry.go refactor: replace strings.Replace with strings.ReplaceAll 2022-05-17 11:08:37 +01:00
sizesuffix_test.go Change byte unit format from MiByte to MiB 2021-08-31 09:57:27 +02:00
sizesuffix.go Remove github.com/pkg/errors and replace with std library version 2021-11-07 11:53:30 +00:00
tristate_test.go fs: add a tristate true/false/unset configuration value 2021-11-03 21:44:09 +00:00
tristate.go Remove github.com/pkg/errors and replace with std library version 2021-11-07 11:53:30 +00:00
types.go backends: make NewObject return fs.ErrorIsDir if possible 2021-10-14 17:15:50 +01:00
version.go Configurable version suffix independent of version number 2022-05-17 12:10:01 +01:00
versioncheck.go build: update to go1.18 and make go1.16 the minimum required version 2022-04-04 20:35:17 +01:00
versionsuffix.go Configurable version suffix independent of version number 2022-05-17 12:10:01 +01:00
versiontag.go Configurable version suffix independent of version number 2022-05-17 12:10:01 +01:00