--- title: "Documentation" description: "Rclone Changelog" --- # Changelog ## v1.52.0 - 2020-05-27 Special thanks to Martin Michlmayr for proof reading and correcting all the docs and Edward Barker for helping re-write the front page. [See commits](https://github.com/rclone/rclone/compare/v1.51.0...v1.52.0) * New backends * [Tardigrade](/tardigrade/) backend for use with storj.io (Caleb Case) * [Union](/union/) re-write to have multiple writable remotes (Max Sum) * [Seafile](/seafile) for Seafile server (Fred @creativeprojects) * New commands * backend: command for backend specific commands (see backends) (Nick Craig-Wood) * cachestats: Deprecate in favour of `rclone backend stats cache:` (Nick Craig-Wood) * dbhashsum: Deprecate in favour of `rclone hashsum DropboxHash` (Nick Craig-Wood) * New Features * Add `--header-download` and `--header-upload` flags for setting HTTP headers when uploading/downloading (Tim Gallant) * Add `--header` flag to add HTTP headers to every HTTP transaction (Nick Craig-Wood) * Add `--check-first` to do all checking before starting transfers (Nick Craig-Wood) * Add `--track-renames-strategy` for configurable matching criteria for `--track-renames` (Bernd Schoolmann) * Add `--cutoff-mode` hard,soft,catious (Shing Kit Chan & Franklyn Tackitt) * Filter flags (eg `--files-from -`) can read from stdin (fishbullet) * Add `--error-on-no-transfer` option (Jon Fautley) * Implement `--order-by xxx,mixed` for copying some small and some big files (Nick Craig-Wood) * Allow `--max-backlog` to be negative meaning as large as possible (Nick Craig-Wood) * Added `--no-unicode-normalization` flag to allow Unicode filenames to remain unique (Ben Zenker) * Allow `--min-age`/`--max-age` to take a date as well as a duration (Nick Craig-Wood) * Add rename statistics for file and directory renames (Nick Craig-Wood) * Add statistics output to JSON log (reddi) * Make stats be printed on non-zero exit code (Nick Craig-Wood) * When running `--password-command` allow use of stdin (Sébastien Gross) * Stop empty strings being a valid remote path (Nick Craig-Wood) * accounting: support WriterTo for less memory copying (Nick Craig-Wood) * build * Update to use go1.14 for the build (Nick Craig-Wood) * Add `-trimpath` to release build for reproduceable builds (Nick Craig-Wood) * Remove GOOS and GOARCH from Dockerfile (Brandon Philips) * config * Fsync the config file after writing to save more reliably (Nick Craig-Wood) * Add `--obscure` and `--no-obscure` flags to `config create`/`update` (Nick Craig-Wood) * Make `config show` take `remote:` as well as `remote` (Nick Craig-Wood) * copyurl: Add `--no-clobber` flag (Denis) * delete: Added `--rmdirs` flag to delete directories as well (Kush) * filter: Added `--files-from-raw` flag (Ankur Gupta) * genautocomplete: Add support for fish shell (Matan Rosenberg) * log: Add support for syslog LOCAL facilities (Patryk Jakuszew) * lsjson: Add `--hash-type` parameter and use it in lsf to speed up hashing (Nick Craig-Wood) * rc * Add `-o`/`--opt` and `-a`/`--arg` for more structured input (Nick Craig-Wood) * Implement `backend/command` for running backend specific commands remotely (Nick Craig-Wood) * Add `mount/mount` command for starting `rclone mount` via the API (Chaitanya) * rcd: Add Prometheus metrics support (Gary Kim) * serve http * Added a `--template` flag for user defined markup (calistri) * Add Last-Modified headers to files and directories (Nick Craig-Wood) * serve sftp: Add support for multiple host keys by repeating `--key` flag (Maxime Suret) * touch: Add `--localtime` flag to make `--timestamp` localtime not UTC (Nick Craig-Wood) * Bug Fixes * accounting * Restore "Max number of stats groups reached" log line (Michał Matczuk) * Correct exitcode on Transfer Limit Exceeded flag. (Anuar Serdaliyev) * Reset bytes read during copy retry (Ankur Gupta) * Fix race clearing stats (Nick Craig-Wood) * copy: Only create empty directories when they don't exist on the remote (Ishuah Kariuki) * dedupe: Stop dedupe deleting files with identical IDs (Nick Craig-Wood) * oauth * Use custom http client so that `--no-check-certificate` is honored by oauth token fetch (Mark Spieth) * Replace deprecated oauth2.NoContext (Lars Lehtonen) * operations * Fix setting the timestamp on Windows for multithread copy (Nick Craig-Wood) * Make rcat obey `--ignore-checksum` (Nick Craig-Wood) * Make `--max-transfer` more accurate (Nick Craig-Wood) * rc * Fix dropped error (Lars Lehtonen) * Fix misplaced http server config (Xiaoxing Ye) * Disable duplicate log (ElonH) * serve dlna * Cds: don't specify childCount at all when unknown (Dan Walters) * Cds: use modification time as date in dlna metadata (Dan Walters) * serve restic: Fix tests after restic project removed vendoring (Nick Craig-Wood) * sync * Fix incorrect "nothing to transfer" message using `--delete-before` (Nick Craig-Wood) * Only create empty directories when they don't exist on the remote (Ishuah Kariuki) * Mount * Add `--async-read` flag to disable asynchronous reads (Nick Craig-Wood) * Ignore `--allow-root` flag with a warning as it has been removed upstream (Nick Craig-Wood) * Warn if `--allow-non-empty` used on Windows and clarify docs (Nick Craig-Wood) * Constrain to go1.13 or above otherwise bazil.org/fuse fails to compile (Nick Craig-Wood) * Fix fail because of too long volume name (evileye) * Report 1PB free for unknown disk sizes (Nick Craig-Wood) * Map more rclone errors into file systems errors (Nick Craig-Wood) * Fix disappearing cwd problem (Nick Craig-Wood) * Use ReaddirPlus on Windows to improve directory listing performance (Nick Craig-Wood) * Send a hint as to whether the filesystem is case insensitive or not (Nick Craig-Wood) * Add rc command `mount/types` (Nick Craig-Wood) * Change maximum leaf name length to 1024 bytes (Nick Craig-Wood) * VFS * Add `--vfs-read-wait` and `--vfs-write-wait` flags to control time waiting for a sequential read/write (Nick Craig-Wood) * Change default `--vfs-read-wait` to 20ms (it was 5ms and not configurable) (Nick Craig-Wood) * Make `df` output more consistent on a rclone mount. (Yves G) * Report 1PB free for unknown disk sizes (Nick Craig-Wood) * Fix race condition caused by unlocked reading of Dir.path (Nick Craig-Wood) * Make File lock and Dir lock not overlap to avoid deadlock (Nick Craig-Wood) * Implement lock ordering between File and Dir to eliminate deadlocks (Nick Craig-Wood) * Factor the vfs cache into its own package (Nick Craig-Wood) * Pin the Fs in use in the Fs cache (Nick Craig-Wood) * Add SetSys() methods to Node to allow caching stuff on a node (Nick Craig-Wood) * Ignore file not found errors from Hash in Read.Release (Nick Craig-Wood) * Fix hang in read wait code (Nick Craig-Wood) * Local * Speed up multi thread downloads by using sparse files on Windows (Nick Craig-Wood) * Implement `--local-no-sparse` flag for disabling sparse files (Nick Craig-Wood) * Implement `rclone backend noop` for testing purposes (Nick Craig-Wood) * Fix "file not found" errors on post transfer Hash calculation (Nick Craig-Wood) * Cache * Implement `rclone backend stats` command (Nick Craig-Wood) * Fix Server Side Copy with Temp Upload (Brandon McNama) * Remove Unused Functions (Lars Lehtonen) * Disable race tests until bbolt is fixed (Nick Craig-Wood) * Move methods used for testing into test file (greatroar) * Add Pin and Unpin and canonicalised lookup (Nick Craig-Wood) * Use proper import path go.etcd.io/bbolt (Robert-André Mauchin) * Crypt * Calculate hashes for uploads from local disk (Nick Craig-Wood) * This allows crypted Jottacloud uploads without using local disk * This means crypted s3/b2 uploads will now have hashes * Added `rclone backend decode`/`encode` commands to replicate functionality of `cryptdecode` (Anagh Kumar Baranwal) * Get rid of the unused Cipher interface as it obfuscated the code (Nick Craig-Wood) * Azure Blob * Implement streaming of unknown sized files so `rcat` is now supported (Nick Craig-Wood) * Implement memory pooling to control memory use (Nick Craig-Wood) * Add `--azureblob-disable-checksum` flag (Nick Craig-Wood) * Retry `InvalidBlobOrBlock` error as it may indicate block concurrency problems (Nick Craig-Wood) * Remove unused `Object.parseTimeString()` (Lars Lehtonen) * Fix permission error on SAS URL limited to container (Nick Craig-Wood) * B2 * Add support for `--header-upload` and `--header-download` (Tim Gallant) * Ignore directory markers at the root also (Nick Craig-Wood) * Force the case of the SHA1 to lowercase (Nick Craig-Wood) * Remove unused `largeUpload.clearUploadURL()` (Lars Lehtonen) * Box * Add support for `--header-upload` and `--header-download` (Tim Gallant) * Implement About to read size used (Nick Craig-Wood) * Add token renew function for jwt auth (David Bramwell) * Added support for interchangeable root folder for Box backend (Sunil Patra) * Remove unnecessary iat from jws claims (David) * Drive * Follow shortcuts by default, skip with `--drive-skip-shortcuts` (Nick Craig-Wood) * Implement `rclone backend shortcut` command for creating shortcuts (Nick Craig-Wood) * Added `rclone backend` command to change `service_account_file` and `chunk_size` (Anagh Kumar Baranwal) * Fix missing files when using `--fast-list` and `--drive-shared-with-me` (Nick Craig-Wood) * Fix duplicate items when using `--drive-shared-with-me` (Nick Craig-Wood) * Extend `--drive-stop-on-upload-limit` to respond to `teamDriveFileLimitExceeded`. (harry) * Don't delete files with multiple parents to avoid data loss (Nick Craig-Wood) * Server side copy docs use default description if empty (Nick Craig-Wood) * Dropbox * Make error insufficient space to be fatal (harry) * Add info about required redirect url (Elan Ruusamäe) * Fichier * Add support for `--header-upload` and `--header-download` (Tim Gallant) * Implement custom pacer to deal with the new rate limiting (buengese) * FTP * Fix lockup when using concurrency limit on failed connections (Nick Craig-Wood) * Fix lockup on failed upload when using concurrency limit (Nick Craig-Wood) * Fix lockup on Close failures when using concurrency limit (Nick Craig-Wood) * Work around pureftp sending spurious 150 messages (Nick Craig-Wood) * Google Cloud Storage * Add support for `--header-upload` and `--header-download` (Nick Craig-Wood) * Add `ARCHIVE` storage class to help (Adam Stroud) * Ignore directory markers at the root (Nick Craig-Wood) * Googlephotos * Make the start year configurable (Daven) * Add support for `--header-upload` and `--header-download` (Tim Gallant) * Create feature/favorites directory (Brandon Philips) * Fix "concurrent map write" error (Nick Craig-Wood) * Don't put an image in error message (Nick Craig-Wood) * HTTP * Improved directory listing with new template from Caddy project (calisro) * Jottacloud * Implement `--jottacloud-trashed-only` (buengese) * Add support for `--header-upload` and `--header-download` (Tim Gallant) * Use `RawURLEncoding` when decoding base64 encoded login token (buengese) * Implement cleanup (buengese) * Update docs regarding cleanup, removed remains from old auth, and added warning about special mountpoints. (albertony) * Mailru * Describe 2FA requirements (valery1707) * Onedrive * Implement `--onedrive-server-side-across-configs` (Nick Craig-Wood) * Add support for `--header-upload` and `--header-download` (Tim Gallant) * Fix occasional 416 errors on multipart uploads (Nick Craig-Wood) * Added maximum chunk size limit warning in the docs (Harry) * Fix missing drive on config (Nick Craig-Wood) * Make error `quotaLimitReached` to be fatal (harry) * Opendrive * Add support for `--header-upload` and `--header-download` (Tim Gallant) * Pcloud * Added support for interchangeable root folder for pCloud backend (Sunil Patra) * Add support for `--header-upload` and `--header-download` (Tim Gallant) * Fix initial config "Auth state doesn't match" message (Nick Craig-Wood) * Premiumizeme * Add support for `--header-upload` and `--header-download` (Tim Gallant) * Prune unused functions (Lars Lehtonen) * Putio * Add support for `--header-upload` and `--header-download` (Nick Craig-Wood) * Make downloading files use the rclone http Client (Nick Craig-Wood) * Fix parsing of remotes with leading and trailing / (Nick Craig-Wood) * Qingstor * Make `rclone cleanup` remove pending multipart uploads older than 24h (Nick Craig-Wood) * Try harder to cancel failed multipart uploads (Nick Craig-Wood) * Prune `multiUploader.list()` (Lars Lehtonen) * Lint fix (Lars Lehtonen) * S3 * Add support for `--header-upload` and `--header-download` (Tim Gallant) * Use memory pool for buffer allocations (Maciej Zimnoch) * Add SSE-C support for AWS, Ceph, and MinIO (Jack Anderson) * Fail fast multipart upload (Michał Matczuk) * Report errors on bucket creation (mkdir) correctly (Nick Craig-Wood) * Specify that Minio supports URL encoding in listings (Nick Craig-Wood) * Added 500 as retryErrorCode (Michał Matczuk) * Use `--low-level-retries` as the number of SDK retries (Aleksandar Janković) * Fix multipart abort context (Aleksandar Jankovic) * Replace deprecated `session.New()` with `session.NewSession()` (Lars Lehtonen) * Use the provided size parameter when allocating a new memory pool (Joachim Brandon LeBlanc) * Use rclone's low level retries instead of AWS SDK to fix listing retries (Nick Craig-Wood) * Ignore directory markers at the root also (Nick Craig-Wood) * Use single memory pool (Michał Matczuk) * Do not resize buf on put to memBuf (Michał Matczuk) * Improve docs for `--s3-disable-checksum` (Nick Craig-Wood) * Don't leak memory or tokens in edge cases for multipart upload (Nick Craig-Wood) * Seafile * Implement 2FA (Fred) * SFTP * Added `--sftp-pem-key` to support inline key files (calisro) * Fix post transfer copies failing with 0 size when using `set_modtime=false` (Nick Craig-Wood) * Sharefile * Add support for `--header-upload` and `--header-download` (Tim Gallant) * Sugarsync * Add support for `--header-upload` and `--header-download` (Tim Gallant) * Swift * Add support for `--header-upload` and `--header-download` (Nick Craig-Wood) * Fix cosmetic issue in error message (Martin Michlmayr) * Union * Implement multiple writable remotes (Max Sum) * Fix server-side copy (Max Sum) * Implement ListR (Max Sum) * Enable ListR when upstreams contain local (Max Sum) * WebDAV * Add support for `--header-upload` and `--header-download` (Tim Gallant) * Fix `X-OC-Mtime` header for Transip compatibility (Nick Craig-Wood) * Report full and consistent usage with `about` (Yves G) * Yandex * Add support for `--header-upload` and `--header-download` (Tim Gallant) ## v1.51.0 - 2020-02-01 * New backends * [Memory](/memory/) (Nick Craig-Wood) * [Sugarsync](/sugarsync/) (Nick Craig-Wood) * New Features * Adjust all backends to have `--backend-encoding` parameter (Nick Craig-Wood) * this enables the encoding for special characters to be adjusted or disabled * Add `--max-duration` flag to control the maximum duration of a transfer session (boosh) * Add `--expect-continue-timeout` flag, default 1s (Nick Craig-Wood) * Add `--no-check-dest` flag for copying without testing the destination (Nick Craig-Wood) * Implement `--order-by` flag to order transfers (Nick Craig-Wood) * accounting * Don't show entries in both transferring and checking (Nick Craig-Wood) * Add option to delete stats (Aleksandar Jankovic) * build * Compress the test builds with gzip (Nick Craig-Wood) * Implement a framework for starting test servers during tests (Nick Craig-Wood) * cmd: Always print elapsed time to tenth place seconds in progress (Gary Kim) * config * Add `--password-command` to allow dynamic config password (Damon Permezel) * Give config questions default values (Nick Craig-Wood) * Check a remote exists when creating a new one (Nick Craig-Wood) * copyurl: Add `--stdout` flag to write to stdout (Nick Craig-Wood) * dedupe: Implement keep smallest too (Nick Craig-Wood) * hashsum: Add flag `--base64` flag (landall) * lsf: Speed up on s3/swift/etc by not reading mimetype by default (Nick Craig-Wood) * lsjson: Add `--no-mimetype` flag (Nick Craig-Wood) * rc: Add methods to turn on blocking and mutex profiling (Nick Craig-Wood) * rcd * Adding group parameter to stats (Chaitanya) * Move webgui apart; option to disable browser (Xiaoxing Ye) * serve sftp: Add support for public key with auth proxy (Paul Tinsley) * stats: Show deletes in stats and hide zero stats (anuar45) * Bug Fixes * accounting * Fix error counter counting multiple times (Ankur Gupta) * Fix error count shown as checks (Cnly) * Clear finished transfer in stats-reset (Maciej Zimnoch) * Added StatsInfo locking in statsGroups sum function (Michał Matczuk) * asyncreader: Fix EOF error (buengese) * check: Fix `--one-way` recursing more directories than it needs to (Nick Craig-Wood) * chunkedreader: Disable hash calculation for first segment (Nick Craig-Wood) * config * Do not open browser on headless on drive/gcs/google photos (Xiaoxing Ye) * SetValueAndSave ignore error if config section does not exist yet (buengese) * cmd: Fix completion with an encrypted config (Danil Semelenov) * dbhashsum: Stop it returning UNSUPPORTED on dropbox (Nick Craig-Wood) * dedupe: Add missing modes to help string (Nick Craig-Wood) * operations * Fix dedupe continuing on errors like insufficientFilePermisson (SezalAgrawal) * Clear accounting before low level retry (Maciej Zimnoch) * Write debug message when hashes could not be checked (Ole Schütt) * Move interface assertion to tests to remove pflag dependency (Nick Craig-Wood) * Make NewOverrideObjectInfo public and factor uses (Nick Craig-Wood) * proxy: Replace use of bcrypt with sha256 (Nick Craig-Wood) * vendor * Update bazil.org/fuse to fix FreeBSD 12.1 (Nick Craig-Wood) * Update github.com/t3rm1n4l/go-mega to fix mega "illegal base64 data at input byte 22" (Nick Craig-Wood) * Update termbox-go to fix ncdu command on FreeBSD (Kuang-che Wu) * Update t3rm1n4l/go-mega - fixes mega: couldn't login: crypto/aes: invalid key size 0 (Nick Craig-Wood) * Mount * Enable async reads for a 20% speedup (Nick Craig-Wood) * Replace use of WriteAt with Write for cache mode >= writes and O_APPEND (Brett Dutro) * Make sure we call unmount when exiting (Nick Craig-Wood) * Don't build on go1.10 as bazil/fuse no longer supports it (Nick Craig-Wood) * When setting dates discard out of range dates (Nick Craig-Wood) * VFS * Add a newly created file straight into the directory (Nick Craig-Wood) * Only calculate one hash for reads for a speedup (Nick Craig-Wood) * Make ReadAt for non cached files work better with non-sequential reads (Nick Craig-Wood) * Fix edge cases when reading ModTime from file (Nick Craig-Wood) * Make sure existing files opened for write show correct size (Nick Craig-Wood) * Don't cache the path in RW file objects to fix renaming (Nick Craig-Wood) * Fix rename of open files when using the VFS cache (Nick Craig-Wood) * When renaming files in the cache, rename the cache item in memory too (Nick Craig-Wood) * Fix open file renaming on drive when using `--vfs-cache-mode writes` (Nick Craig-Wood) * Fix incorrect modtime for mv into mount with `--vfs-cache-modes writes` (Nick Craig-Wood) * On rename, rename in cache too if the file exists (Anagh Kumar Baranwal) * Local * Make source file being updated errors be NoLowLevelRetry errors (Nick Craig-Wood) * Fix update of hidden files on Windows (Nick Craig-Wood) * Cache * Follow move of upstream library github.com/coreos/bbolt github.com/etcd-io/bbolt (Nick Craig-Wood) * Fix `fatal error: concurrent map writes` (Nick Craig-Wood) * Crypt * Reorder the filename encryption options (Thomas Eales) * Correctly handle trailing dot (buengese) * Chunker * Reduce length of temporary suffix (Ivan Andreev) * Drive * Add `--drive-stop-on-upload-limit` flag to stop syncs when upload limit reached (Nick Craig-Wood) * Add `--drive-use-shared-date` to use date file was shared instead of modified date (Garry McNulty) * Make sure invalid auth for teamdrives always reports an error (Nick Craig-Wood) * Fix `--fast-list` when using appDataFolder (Nick Craig-Wood) * Use multipart resumable uploads for streaming and uploads in mount (Nick Craig-Wood) * Log an ERROR if an incomplete search is returned (Nick Craig-Wood) * Hide dangerous config from the configurator (Nick Craig-Wood) * Dropbox * Treat `insufficient_space` errors as non retriable errors (Nick Craig-Wood) * Jottacloud * Use new auth method used by official client (buengese) * Add URL to generate Login Token to config wizard (Nick Craig-Wood) * Add support whitelabel versions (buengese) * Koofr * Use rclone HTTP client. (jaKa) * Onedrive * Add Sites.Read.All permission (Benjamin Richter) * Add support "Retry-After" header (Motonori IWAMURO) * Opendrive * Implement `--opendrive-chunk-size` (Nick Craig-Wood) * S3 * Re-implement multipart upload to fix memory issues (Nick Craig-Wood) * Add `--s3-copy-cutoff` for size to switch to multipart copy (Nick Craig-Wood) * Add new region Asia Patific (Hong Kong) (Outvi V) * Reduce memory usage streaming files by reducing max stream upload size (Nick Craig-Wood) * Add `--s3-list-chunk` option for bucket listing (Thomas Kriechbaumer) * Force path style bucket access to off for AWS deprecation (Nick Craig-Wood) * Use AWS web identity role provider if available (Tennix) * Add StackPath Object Storage Support (Dave Koston) * Fix ExpiryWindow value (Aleksandar Jankovic) * Fix DisableChecksum condition (Aleksandar Janković) * Fix URL decoding of NextMarker (Nick Craig-Wood) * SFTP * Add `--sftp-skip-links` to skip symlinks and non regular files (Nick Craig-Wood) * Retry Creation of Connection (Sebastian Brandt) * Fix "failed to parse private key file: ssh: not an encrypted key" error (Nick Craig-Wood) * Open files for update write only to fix AWS SFTP interop (Nick Craig-Wood) * Swift * Reserve segments of dynamic large object when delete objects in container what was enabled versioning. (Nguyễn Hữu Luân) * Fix parsing of X-Object-Manifest (Nick Craig-Wood) * Update OVH API endpoint (unbelauscht) * WebDAV * Make nextcloud only upload SHA1 checksums (Nick Craig-Wood) * Fix case of "Bearer" in Authorization: header to agree with RFC (Nick Craig-Wood) * Add Referer header to fix problems with WAFs (Nick Craig-Wood) ## v1.50.2 - 2019-11-19 * Bug Fixes * accounting: Fix memory leak on retries operations (Nick Craig-Wood) * Drive * Fix listing of the root directory with drive.files scope (Nick Craig-Wood) * Fix --drive-root-folder-id with team/shared drives (Nick Craig-Wood) ## v1.50.1 - 2019-11-02 * Bug Fixes * hash: Fix accidentally changed hash names for `DropboxHash` and `CRC-32` (Nick Craig-Wood) * fshttp: Fix error reporting on tpslimit token bucket errors (Nick Craig-Wood) * fshttp: Don't print token bucket errors on context cancelled (Nick Craig-Wood) * Local * Fix listings of . on Windows (Nick Craig-Wood) * Onedrive * Fix DirMove/Move after Onedrive change (Xiaoxing Ye) ## v1.50.0 - 2019-10-26 * New backends * [Citrix Sharefile](/sharefile/) (Nick Craig-Wood) * [Chunker](/chunker/) - an overlay backend to split files into smaller parts (Ivan Andreev) * [Mail.ru Cloud](/mailru/) (Ivan Andreev) * New Features * encodings (Fabian Möller & Nick Craig-Wood) * All backends now use file name encoding to ensure any file name can be written to any backend. * See the [restricted file name docs](/overview/#restricted-filenames) for more info and the [local backend docs](/local/#filenames). * Some file names may look different in rclone if you are using any control characters in names or [unicode FULLWIDTH symbols](https://en.wikipedia.org/wiki/Halfwidth_and_Fullwidth_Forms_(Unicode_block)). * build * Update to use go1.13 for the build (Nick Craig-Wood) * Drop support for go1.9 (Nick Craig-Wood) * Build rclone with GitHub actions (Nick Craig-Wood) * Convert python scripts to python3 (Nick Craig-Wood) * Swap Azure/go-ansiterm for mattn/go-colorable (Nick Craig-Wood) * Dockerfile fixes (Matei David) * Add [plugin support](https://github.com/rclone/rclone/blob/master/CONTRIBUTING.md#writing-a-plugin) for backends and commands (Richard Patel) * config * Use alternating Red/Green in config to make more obvious (Nick Craig-Wood) * contrib * Add sample DLNA server Docker Compose manifest. (pataquets) * Add sample WebDAV server Docker Compose manifest. (pataquets) * copyurl * Add `--auto-filename` flag for using file name from URL in destination path (Denis) * serve dlna: * Many compatibility improvements (Dan Walters) * Support for external srt subtitles (Dan Walters) * rc * Added command core/quit (Saksham Khanna) * Bug Fixes * sync * Make `--update`/`-u` not transfer files that haven't changed (Nick Craig-Wood) * Free objects after they come out of the transfer pipe to save memory (Nick Craig-Wood) * Fix `--files-from without --no-traverse` doing a recursive scan (Nick Craig-Wood) * operations * Fix accounting for server side copies (Nick Craig-Wood) * Display 'All duplicates removed' only if dedupe successful (Sezal Agrawal) * Display 'Deleted X extra copies' only if dedupe successful (Sezal Agrawal) * accounting * Only allow up to 100 completed transfers in the accounting list to save memory (Nick Craig-Wood) * Cull the old time ranges when possible to save memory (Nick Craig-Wood) * Fix panic due to server-side copy fallback (Ivan Andreev) * Fix memory leak noticeable for transfers of large numbers of objects (Nick Craig-Wood) * Fix total duration calculation (Nick Craig-Wood) * cmd * Fix environment variables not setting command line flags (Nick Craig-Wood) * Make autocomplete compatible with bash's posix mode for macOS (Danil Semelenov) * Make `--progress` work in git bash on Windows (Nick Craig-Wood) * Fix 'compopt: command not found' on autocomplete on macOS (Danil Semelenov) * config * Fix setting of non top level flags from environment variables (Nick Craig-Wood) * Check config names more carefully and report errors (Nick Craig-Wood) * Remove error: can't use `--size-only` and `--ignore-size` together. (Nick Craig-Wood) * filter: Prevent mixing options when `--files-from` is in use (Michele Caci) * serve sftp: Fix crash on unsupported operations (eg Readlink) (Nick Craig-Wood) * Mount * Allow files of unknown size to be read properly (Nick Craig-Wood) * Skip tests on <= 2 CPUs to avoid lockup (Nick Craig-Wood) * Fix panic on File.Open (Nick Craig-Wood) * Fix "mount_fusefs: -o timeout=: option not supported" on FreeBSD (Nick Craig-Wood) * Don't pass huge filenames (>4k) to FUSE as it can't cope (Nick Craig-Wood) * VFS * Add flag `--vfs-case-insensitive` for windows/macOS mounts (Ivan Andreev) * Make objects of unknown size readable through the VFS (Nick Craig-Wood) * Move writeback of dirty data out of close() method into its own method (FlushWrites) and remove close() call from Flush() (Brett Dutro) * Stop empty dirs disappearing when renamed on bucket based remotes (Nick Craig-Wood) * Stop change notify polling clearing so much of the directory cache (Nick Craig-Wood) * Azure Blob * Disable logging to the Windows event log (Nick Craig-Wood) * B2 * Remove `unverified:` prefix on sha1 to improve interop (eg with CyberDuck) (Nick Craig-Wood) * Box * Add options to get access token via JWT auth (David) * Drive * Disable HTTP/2 by default to work around INTERNAL_ERROR problems (Nick Craig-Wood) * Make sure that drive root ID is always canonical (Nick Craig-Wood) * Fix `--drive-shared-with-me` from the root with lsand `--fast-list` (Nick Craig-Wood) * Fix ChangeNotify polling for shared drives (Nick Craig-Wood) * Fix change notify polling when using appDataFolder (Nick Craig-Wood) * Dropbox * Make disallowed filenames errors not retry (Nick Craig-Wood) * Fix nil pointer exception on restricted files (Nick Craig-Wood) * Fichier * Fix accessing files > 2GB on 32 bit systems (Nick Craig-Wood) * FTP * Allow disabling EPSV mode (Jon Fautley) * HTTP * HEAD directory entries in parallel to speedup (Nick Craig-Wood) * Add `--http-no-head` to stop rclone doing HEAD in listings (Nick Craig-Wood) * Putio * Add ability to resume uploads (Cenk Alti) * S3 * Fix signature v2_auth headers (Anthony Rusdi) * Fix encoding for control characters (Nick Craig-Wood) * Only ask for URL encoded directory listings if we need them on Ceph (Nick Craig-Wood) * Add option for multipart failure behaviour (Aleksandar Jankovic) * Support for multipart copy (庄天翼) * Fix nil pointer reference if no metadata returned for object (Nick Craig-Wood) * SFTP * Fix `--sftp-ask-password` trying to contact the ssh agent (Nick Craig-Wood) * Fix hashes of files with backslashes (Nick Craig-Wood) * Include more ciphers with `--sftp-use-insecure-cipher` (Carlos Ferreyra) * WebDAV * Parse and return Sharepoint error response (Henning Surmeier) ## v1.49.5 - 2019-10-05 * Bug Fixes * Revert back to go1.12.x for the v1.49.x builds as go1.13.x was causing issues (Nick Craig-Wood) * Fix rpm packages by using master builds of nfpm (Nick Craig-Wood) * Fix macOS build after brew changes (Nick Craig-Wood) ## v1.49.4 - 2019-09-29 * Bug Fixes * cmd/rcd: Address ZipSlip vulnerability (Richard Patel) * accounting: Fix file handle leak on errors (Nick Craig-Wood) * oauthutil: Fix security problem when running with two users on the same machine (Nick Craig-Wood) * FTP * Fix listing of an empty root returning: error dir not found (Nick Craig-Wood) * S3 * Fix SetModTime on GLACIER/ARCHIVE objects and implement set/get tier (Nick Craig-Wood) ## v1.49.3 - 2019-09-15 * Bug Fixes * accounting * Fix total duration calculation (Aleksandar Jankovic) * Fix "file already closed" on transfer retries (Nick Craig-Wood) ## v1.49.2 - 2019-09-08 * New Features * build: Add Docker workflow support (Alfonso Montero) * Bug Fixes * accounting: Fix locking in Transfer to avoid deadlock with `--progress` (Nick Craig-Wood) * docs: Fix template argument for mktemp in install.sh (Cnly) * operations: Fix `-u`/`--update` with google photos / files of unknown size (Nick Craig-Wood) * rc: Fix docs for config/create /update /password (Nick Craig-Wood) * Google Cloud Storage * Fix need for elevated permissions on SetModTime (Nick Craig-Wood) ## v1.49.1 - 2019-08-28 * Bug Fixes * config: Fix generated passwords being stored as empty password (Nick Craig-Wood) * rcd: Added missing parameter for web-gui info logs. (Chaitanya) * Googlephotos * Fix crash on error response (Nick Craig-Wood) * Onedrive * Fix crash on error response (Nick Craig-Wood) ## v1.49.0 - 2019-08-26 * New backends * [1fichier](/fichier/) (Laura Hausmann) * [Google Photos](/googlephotos/) (Nick Craig-Wood) * [Putio](/putio/) (Cenk Alti) * [premiumize.me](/premiumizeme/) (Nick Craig-Wood) * New Features * Experimental [web GUI](/gui/) (Chaitanya Bankanhal) * Implement `--compare-dest` & `--copy-dest` (yparitcher) * Implement `--suffix` without `--backup-dir` for backup to current dir (yparitcher) * `config reconnect` to re-login (re-run the oauth login) for the backend. (Nick Craig-Wood) * `config userinfo` to discover which user you are logged in as. (Nick Craig-Wood) * `config disconnect` to disconnect you (log out) from the backend. (Nick Craig-Wood) * Add `--use-json-log` for JSON logging (justinalin) * Add context propagation to rclone (Aleksandar Jankovic) * Reworking internal statistics interfaces so they work with rc jobs (Aleksandar Jankovic) * Add Higher units for ETA (AbelThar) * Update rclone logos to new design (Andreas Chlupka) * hash: Add CRC-32 support (Cenk Alti) * help showbackend: Fixed advanced option category when there are no standard options (buengese) * ncdu: Display/Copy to Clipboard Current Path (Gary Kim) * operations: * Run hashing operations in parallel (Nick Craig-Wood) * Don't calculate checksums when using `--ignore-checksum` (Nick Craig-Wood) * Check transfer hashes when using `--size-only` mode (Nick Craig-Wood) * Disable multi thread copy for local to local copies (Nick Craig-Wood) * Debug successful hashes as well as failures (Nick Craig-Wood) * rc * Add ability to stop async jobs (Aleksandar Jankovic) * Return current settings if core/bwlimit called without parameters (Nick Craig-Wood) * Rclone-WebUI integration with rclone (Chaitanya Bankanhal) * Added command line parameter to control the cross origin resource sharing (CORS) in the rcd. (Security Improvement) (Chaitanya Bankanhal) * Add anchor tags to the docs so links are consistent (Nick Craig-Wood) * Remove _async key from input parameters after parsing so later operations won't get confused (buengese) * Add call to clear stats (Aleksandar Jankovic) * rcd * Auto-login for web-gui (Chaitanya Bankanhal) * Implement `--baseurl` for rcd and web-gui (Chaitanya Bankanhal) * serve dlna * Only select interfaces which can multicast for SSDP (Nick Craig-Wood) * Add more builtin mime types to cover standard audio/video (Nick Craig-Wood) * Fix missing mime types on Android causing missing videos (Nick Craig-Wood) * serve ftp * Refactor to bring into line with other serve commands (Nick Craig-Wood) * Implement `--auth-proxy` (Nick Craig-Wood) * serve http: Implement `--baseurl` (Nick Craig-Wood) * serve restic: Implement `--baseurl` (Nick Craig-Wood) * serve sftp * Implement auth proxy (Nick Craig-Wood) * Fix detection of whether server is authorized (Nick Craig-Wood) * serve webdav * Implement `--baseurl` (Nick Craig-Wood) * Support `--auth-proxy` (Nick Craig-Wood) * Bug Fixes * Make "bad record MAC" a retriable error (Nick Craig-Wood) * copyurl: Fix copying files that return HTTP errors (Nick Craig-Wood) * march: Fix checking sub-directories when using `--no-traverse` (buengese) * rc * Fix unmarshalable http.AuthFn in options and put in test for marshalability (Nick Craig-Wood) * Move job expire flags to rc to fix initialization problem (Nick Craig-Wood) * Fix `--loopback` with rc/list and others (Nick Craig-Wood) * rcat: Fix slowdown on systems with multiple hashes (Nick Craig-Wood) * rcd: Fix permissions problems on cache directory with web gui download (Nick Craig-Wood) * Mount * Default `--deamon-timout` to 15 minutes on macOS and FreeBSD (Nick Craig-Wood) * Update docs to show mounting from root OK for bucket based (Nick Craig-Wood) * Remove nonseekable flag from write files (Nick Craig-Wood) * VFS * Make write without cache more efficient (Nick Craig-Wood) * Fix `--vfs-cache-mode minimal` and `writes` ignoring cached files (Nick Craig-Wood) * Local * Add `--local-case-sensitive` and `--local-case-insensitive` (Nick Craig-Wood) * Avoid polluting page cache when uploading local files to remote backends (Michał Matczuk) * Don't calculate any hashes by default (Nick Craig-Wood) * Fadvise run syscall on a dedicated go routine (Michał Matczuk) * Azure Blob * Azure Storage Emulator support (Sandeep) * Updated config help details to remove connection string references (Sandeep) * Make all operations work from the root (Nick Craig-Wood) * B2 * Implement link sharing (yparitcher) * Enable server side copy to copy between buckets (Nick Craig-Wood) * Make all operations work from the root (Nick Craig-Wood) * Drive * Fix server side copy of big files (Nick Craig-Wood) * Update API for teamdrive use (Nick Craig-Wood) * Add error for purge with `--drive-trashed-only` (ginvine) * Fichier * Make FolderID int and adjust related code (buengese) * Google Cloud Storage * Reduce oauth scope requested as suggested by Google (Nick Craig-Wood) * Make all operations work from the root (Nick Craig-Wood) * HTTP * Add `--http-headers` flag for setting arbitrary headers (Nick Craig-Wood) * Jottacloud * Use new api for retrieving internal username (buengese) * Refactor configuration and minor cleanup (buengese) * Koofr * Support setting modification times on Koofr backend. (jaKa) * Opendrive * Refactor to use existing lib/rest facilities for uploads (Nick Craig-Wood) * Qingstor * Upgrade to v3 SDK and fix listing loop (Nick Craig-Wood) * Make all operations work from the root (Nick Craig-Wood) * S3 * Add INTELLIGENT_TIERING storage class (Matti Niemenmaa) * Make all operations work from the root (Nick Craig-Wood) * SFTP * Add missing interface check and fix About (Nick Craig-Wood) * Completely ignore all modtime checks if SetModTime=false (Jon Fautley) * Support md5/sha1 with rsync.net (Nick Craig-Wood) * Save the md5/sha1 command in use to the config file for efficiency (Nick Craig-Wood) * Opt-in support for diffie-hellman-group-exchange-sha256 diffie-hellman-group-exchange-sha1 (Yi FU) * Swift * Use FixRangeOption to fix 0 length files via the VFS (Nick Craig-Wood) * Fix upload when using no_chunk to return the correct size (Nick Craig-Wood) * Make all operations work from the root (Nick Craig-Wood) * Fix segments leak during failed large file uploads. (nguyenhuuluan434) * WebDAV * Add `--webdav-bearer-token-command` (Nick Craig-Wood) * Refresh token when it expires with `--webdav-bearer-token-command` (Nick Craig-Wood) * Add docs for using bearer_token_command with oidc-agent (Paul Millar) ## v1.48.0 - 2019-06-15 * New commands * serve sftp: Serve an rclone remote over SFTP (Nick Craig-Wood) * New Features * Multi threaded downloads to local storage (Nick Craig-Wood) * controlled with `--multi-thread-cutoff` and `--multi-thread-streams` * Use rclone.conf from rclone executable directory to enable portable use (albertony) * Allow sync of a file and a directory with the same name (forgems) * this is common on bucket based remotes, eg s3, gcs * Add `--ignore-case-sync` for forced case insensitivity (garry415) * Implement `--stats-one-line-date` and `--stats-one-line-date-format` (Peter Berbec) * Log an ERROR for all commands which exit with non-zero status (Nick Craig-Wood) * Use go-homedir to read the home directory more reliably (Nick Craig-Wood) * Enable creating encrypted config through external script invocation (Wojciech Smigielski) * build: Drop support for go1.8 (Nick Craig-Wood) * config: Make config create/update encrypt passwords where necessary (Nick Craig-Wood) * copyurl: Honor `--no-check-certificate` (Stefan Breunig) * install: Linux skip man pages if no mandb (didil) * lsf: Support showing the Tier of the object (Nick Craig-Wood) * lsjson * Added EncryptedPath to output (calisro) * Support showing the Tier of the object (Nick Craig-Wood) * Add IsBucket field for bucket based remote listing of the root (Nick Craig-Wood) * rc * Add `--loopback` flag to run commands directly without a server (Nick Craig-Wood) * Add operations/fsinfo: Return information about the remote (Nick Craig-Wood) * Skip auth for OPTIONS request (Nick Craig-Wood) * cmd/providers: Add DefaultStr, ValueStr and Type fields (Nick Craig-Wood) * jobs: Make job expiry timeouts configurable (Aleksandar Jankovic) * serve dlna reworked and improved (Dan Walters) * serve ftp: add `--ftp-public-ip` flag to specify public IP (calistri) * serve restic: Add support for `--private-repos` in `serve restic` (Florian Apolloner) * serve webdav: Combine serve webdav and serve http (Gary Kim) * size: Ignore negative sizes when calculating total (Garry McNulty) * Bug Fixes * Make move and copy individual files obey `--backup-dir` (Nick Craig-Wood) * If `--ignore-checksum` is in effect, don't calculate checksum (Nick Craig-Wood) * moveto: Fix case-insensitive same remote move (Gary Kim) * rc: Fix serving bucket based objects with `--rc-serve` (Nick Craig-Wood) * serve webdav: Fix serveDir not being updated with changes from webdav (Gary Kim) * Mount * Fix poll interval documentation (Animosity022) * VFS * Make WriteAt for non cached files work with non-sequential writes (Nick Craig-Wood) * Local * Only calculate the required hashes for big speedup (Nick Craig-Wood) * Log errors when listing instead of returning an error (Nick Craig-Wood) * Fix preallocate warning on Linux with ZFS (Nick Craig-Wood) * Crypt * Make rclone dedupe work through crypt (Nick Craig-Wood) * Fix wrapping of ChangeNotify to decrypt directories properly (Nick Craig-Wood) * Support PublicLink (rclone link) of underlying backend (Nick Craig-Wood) * Implement Optional methods SetTier, GetTier (Nick Craig-Wood) * B2 * Implement server side copy (Nick Craig-Wood) * Implement SetModTime (Nick Craig-Wood) * Drive * Fix move and copy from TeamDrive to GDrive (Fionera) * Add notes that cleanup works in the background on drive (Nick Craig-Wood) * Add `--drive-server-side-across-configs` to default back to old server side copy semantics by default (Nick Craig-Wood) * Add `--drive-size-as-quota` to show storage quota usage for file size (Garry McNulty) * FTP * Add FTP List timeout (Jeff Quinn) * Add FTP over TLS support (Gary Kim) * Add `--ftp-no-check-certificate` option for FTPS (Gary Kim) * Google Cloud Storage * Fix upload errors when uploading pre 1970 files (Nick Craig-Wood) * Jottacloud * Add support for selecting device and mountpoint. (buengese) * Mega * Add cleanup support (Gary Kim) * Onedrive * More accurately check if root is found (Cnly) * S3 * Support S3 Accelerated endpoints with `--s3-use-accelerate-endpoint` (Nick Craig-Wood) * Add config info for Wasabi's EU Central endpoint (Robert Marko) * Make SetModTime work for GLACIER while syncing (Philip Harvey) * SFTP * Add About support (Gary Kim) * Fix about parsing of `df` results so it can cope with -ve results (Nick Craig-Wood) * Send custom client version and debug server version (Nick Craig-Wood) * WebDAV * Retry on 423 Locked errors (Nick Craig-Wood) ## v1.47.0 - 2019-04-13 * New backends * Backend for Koofr cloud storage service. (jaKa) * New Features * Resume downloads if the reader fails in copy (Nick Craig-Wood) * this means rclone will restart transfers if the source has an error * this is most useful for downloads or cloud to cloud copies * Use `--fast-list` for listing operations where it won't use more memory (Nick Craig-Wood) * this should speed up the following operations on remotes which support `ListR` * `dedupe`, `serve restic` `lsf`, `ls`, `lsl`, `lsjson`, `lsd`, `md5sum`, `sha1sum`, `hashsum`, `size`, `delete`, `cat`, `settier` * use `--disable ListR` to get old behaviour if required * Make `--files-from` traverse the destination unless `--no-traverse` is set (Nick Craig-Wood) * this fixes `--files-from` with Google drive and excessive API use in general. * Make server side copy account bytes and obey `--max-transfer` (Nick Craig-Wood) * Add `--create-empty-src-dirs` flag and default to not creating empty dirs (ishuah) * Add client side TLS/SSL flags `--ca-cert`/`--client-cert`/`--client-key` (Nick Craig-Wood) * Implement `--suffix-keep-extension` for use with `--suffix` (Nick Craig-Wood) * build: * Switch to semvar compliant version tags to be go modules compliant (Nick Craig-Wood) * Update to use go1.12.x for the build (Nick Craig-Wood) * serve dlna: Add connection manager service description to improve compatibility (Dan Walters) * lsf: Add 'e' format to show encrypted names and 'o' for original IDs (Nick Craig-Wood) * lsjson: Added `--files-only` and `--dirs-only` flags (calistri) * rc: Implement operations/publiclink the equivalent of `rclone link` (Nick Craig-Wood) * Bug Fixes * accounting: Fix total ETA when `--stats-unit bits` is in effect (Nick Craig-Wood) * Bash TAB completion * Use private custom func to fix clash between rclone and kubectl (Nick Craig-Wood) * Fix for remotes with underscores in their names (Six) * Fix completion of remotes (Florian Gamböck) * Fix autocompletion of remote paths with spaces (Danil Semelenov) * serve dlna: Fix root XML service descriptor (Dan Walters) * ncdu: Fix display corruption with Chinese characters (Nick Craig-Wood) * Add SIGTERM to signals which run the exit handlers on unix (Nick Craig-Wood) * rc: Reload filter when the options are set via the rc (Nick Craig-Wood) * VFS / Mount * Fix FreeBSD: Ignore Truncate if called with no readers and already the correct size (Nick Craig-Wood) * Read directory and check for a file before mkdir (Nick Craig-Wood) * Shorten the locking window for vfs/refresh (Nick Craig-Wood) * Azure Blob * Enable MD5 checksums when uploading files bigger than the "Cutoff" (Dr.Rx) * Fix SAS URL support (Nick Craig-Wood) * B2 * Allow manual configuration of backblaze downloadUrl (Vince) * Ignore already_hidden error on remove (Nick Craig-Wood) * Ignore malformed `src_last_modified_millis` (Nick Craig-Wood) * Drive * Add `--skip-checksum-gphotos` to ignore incorrect checksums on Google Photos (Nick Craig-Wood) * Allow server side move/copy between different remotes. (Fionera) * Add docs on team drives and `--fast-list` eventual consistency (Nestar47) * Fix imports of text files (Nick Craig-Wood) * Fix range requests on 0 length files (Nick Craig-Wood) * Fix creation of duplicates with server side copy (Nick Craig-Wood) * Dropbox * Retry blank errors to fix long listings (Nick Craig-Wood) * FTP * Add `--ftp-concurrency` to limit maximum number of connections (Nick Craig-Wood) * Google Cloud Storage * Fall back to default application credentials (marcintustin) * Allow bucket policy only buckets (Nick Craig-Wood) * HTTP * Add `--http-no-slash` for websites with directories with no slashes (Nick Craig-Wood) * Remove duplicates from listings (Nick Craig-Wood) * Fix socket leak on 404 errors (Nick Craig-Wood) * Jottacloud * Fix token refresh (Sebastian Bünger) * Add device registration (Oliver Heyme) * Onedrive * Implement graceful cancel of multipart uploads if rclone is interrupted (Cnly) * Always add trailing colon to path when addressing items, (Cnly) * Return errors instead of panic for invalid uploads (Fabian Möller) * S3 * Add support for "Glacier Deep Archive" storage class (Manu) * Update Dreamhost endpoint (Nick Craig-Wood) * Note incompatibility with CEPH Jewel (Nick Craig-Wood) * SFTP * Allow custom ssh client config (Alexandru Bumbacea) * Swift * Obey Retry-After to enable OVH restore from cold storage (Nick Craig-Wood) * Work around token expiry on CEPH (Nick Craig-Wood) * WebDAV * Allow IsCollection property to be integer or boolean (Nick Craig-Wood) * Fix race when creating directories (Nick Craig-Wood) * Fix About/df when reading the available/total returns 0 (Nick Craig-Wood) ## v1.46 - 2019-02-09 * New backends * Support Alibaba Cloud (Aliyun) OSS via the s3 backend (Nick Craig-Wood) * New commands * serve dlna: serves a remove via DLNA for the local network (nicolov) * New Features * copy, move: Restore deprecated `--no-traverse` flag (Nick Craig-Wood) * This is useful for when transferring a small number of files into a large destination * genautocomplete: Add remote path completion for bash completion (Christopher Peterson & Danil Semelenov) * Buffer memory handling reworked to return memory to the OS better (Nick Craig-Wood) * Buffer recycling library to replace sync.Pool * Optionally use memory mapped memory for better memory shrinking * Enable with `--use-mmap` if having memory problems - not default yet * Parallelise reading of files specified by `--files-from` (Nick Craig-Wood) * check: Add stats showing total files matched. (Dario Guzik) * Allow rename/delete open files under Windows (Nick Craig-Wood) * lsjson: Use exactly the correct number of decimal places in the seconds (Nick Craig-Wood) * Add cookie support with cmdline switch `--use-cookies` for all HTTP based remotes (qip) * Warn if `--checksum` is set but there are no hashes available (Nick Craig-Wood) * Rework rate limiting (pacer) to be more accurate and allow bursting (Nick Craig-Wood) * Improve error reporting for too many/few arguments in commands (Nick Craig-Wood) * listremotes: Remove `-l` short flag as it conflicts with the new global flag (weetmuts) * Make http serving with auth generate INFO messages on auth fail (Nick Craig-Wood) * Bug Fixes * Fix layout of stats (Nick Craig-Wood) * Fix `--progress` crash under Windows Jenkins (Nick Craig-Wood) * Fix transfer of google/onedrive docs by calling Rcat in Copy when size is -1 (Cnly) * copyurl: Fix checking of `--dry-run` (Denis Skovpen) * Mount * Check that mountpoint and local directory to mount don't overlap (Nick Craig-Wood) * Fix mount size under 32 bit Windows (Nick Craig-Wood) * VFS * Implement renaming of directories for backends without DirMove (Nick Craig-Wood) * now all backends except b2 support renaming directories * Implement `--vfs-cache-max-size` to limit the total size of the cache (Nick Craig-Wood) * Add `--dir-perms` and `--file-perms` flags to set default permissions (Nick Craig-Wood) * Fix deadlock on concurrent operations on a directory (Nick Craig-Wood) * Fix deadlock between RWFileHandle.close and File.Remove (Nick Craig-Wood) * Fix renaming/deleting open files with cache mode "writes" under Windows (Nick Craig-Wood) * Fix panic on rename with `--dry-run` set (Nick Craig-Wood) * Fix vfs/refresh with recurse=true needing the `--fast-list` flag * Local * Add support for `-l`/`--links` (symbolic link translation) (yair@unicorn) * this works by showing links as `link.rclonelink` - see local backend docs for more info * this errors if used with `-L`/`--copy-links` * Fix renaming/deleting open files on Windows (Nick Craig-Wood) * Crypt * Check for maximum length before decrypting filename to fix panic (Garry McNulty) * Azure Blob * Allow building azureblob backend on *BSD (themylogin) * Use the rclone HTTP client to support `--dump headers`, `--tpslimit` etc (Nick Craig-Wood) * Use the s3 pacer for 0 delay in non error conditions (Nick Craig-Wood) * Ignore directory markers (Nick Craig-Wood) * Stop Mkdir attempting to create existing containers (Nick Craig-Wood) * B2 * cleanup: will remove unfinished large files >24hrs old (Garry McNulty) * For a bucket limited application key check the bucket name (Nick Craig-Wood) * before this, rclone would use the authorised bucket regardless of what you put on the command line * Added `--b2-disable-checksum` flag (Wojciech Smigielski) * this enables large files to be uploaded without a SHA-1 hash for speed reasons * Drive * Set default pacer to 100ms for 10 tps (Nick Craig-Wood) * This fits the Google defaults much better and reduces the 403 errors massively * Add `--drive-pacer-min-sleep` and `--drive-pacer-burst` to control the pacer * Improve ChangeNotify support for items with multiple parents (Fabian Möller) * Fix ListR for items with multiple parents - this fixes oddities with `vfs/refresh` (Fabian Möller) * Fix using `--drive-impersonate` and appfolders (Nick Craig-Wood) * Fix google docs in rclone mount for some (not all) applications (Nick Craig-Wood) * Dropbox * Retry-After support for Dropbox backend (Mathieu Carbou) * FTP * Wait for 60 seconds for a connection to Close then declare it dead (Nick Craig-Wood) * helps with indefinite hangs on some FTP servers * Google Cloud Storage * Update google cloud storage endpoints (weetmuts) * HTTP * Add an example with username and password which is supported but wasn't documented (Nick Craig-Wood) * Fix backend with `--files-from` and non-existent files (Nick Craig-Wood) * Hubic * Make error message more informative if authentication fails (Nick Craig-Wood) * Jottacloud * Resume and deduplication support (Oliver Heyme) * Use token auth for all API requests Don't store password anymore (Sebastian Bünger) * Add support for 2-factor authentication (Sebastian Bünger) * Mega * Implement v2 account login which fixes logins for newer Mega accounts (Nick Craig-Wood) * Return error if an unknown length file is attempted to be uploaded (Nick Craig-Wood) * Add new error codes for better error reporting (Nick Craig-Wood) * Onedrive * Fix broken support for "shared with me" folders (Alex Chen) * Fix root ID not normalised (Cnly) * Return err instead of panic on unknown-sized uploads (Cnly) * Qingstor * Fix go routine leak on multipart upload errors (Nick Craig-Wood) * Add upload chunk size/concurrency/cutoff control (Nick Craig-Wood) * Default `--qingstor-upload-concurrency` to 1 to work around bug (Nick Craig-Wood) * S3 * Implement `--s3-upload-cutoff` for single part uploads below this (Nick Craig-Wood) * Change `--s3-upload-concurrency` default to 4 to increase performance (Nick Craig-Wood) * Add `--s3-bucket-acl` to control bucket ACL (Nick Craig-Wood) * Auto detect region for buckets on operation failure (Nick Craig-Wood) * Add GLACIER storage class (William Cocker) * Add Scaleway to s3 documentation (Rémy Léone) * Add AWS endpoint eu-north-1 (weetmuts) * SFTP * Add support for PEM encrypted private keys (Fabian Möller) * Add option to force the usage of an ssh-agent (Fabian Möller) * Perform environment variable expansion on key-file (Fabian Möller) * Fix rmdir on Windows based servers (eg CrushFTP) (Nick Craig-Wood) * Fix rmdir deleting directory contents on some SFTP servers (Nick Craig-Wood) * Fix error on dangling symlinks (Nick Craig-Wood) * Swift * Add `--swift-no-chunk` to disable segmented uploads in rcat/mount (Nick Craig-Wood) * Introduce application credential auth support (kayrus) * Fix memory usage by slimming Object (Nick Craig-Wood) * Fix extra requests on upload (Nick Craig-Wood) * Fix reauth on big files (Nick Craig-Wood) * Union * Fix poll-interval not working (Nick Craig-Wood) * WebDAV * Support About which means rclone mount will show the correct disk size (Nick Craig-Wood) * Support MD5 and SHA1 hashes with Owncloud and Nextcloud (Nick Craig-Wood) * Fail soft on time parsing errors (Nick Craig-Wood) * Fix infinite loop on failed directory creation (Nick Craig-Wood) * Fix identification of directories for Bitrix Site Manager (Nick Craig-Wood) * Fix upload of 0 length files on some servers (Nick Craig-Wood) * Fix if MKCOL fails with 423 Locked assume the directory exists (Nick Craig-Wood) ## v1.45 - 2018-11-24 * New backends * The Yandex backend was re-written - see below for details (Sebastian Bünger) * New commands * rcd: New command just to serve the remote control API (Nick Craig-Wood) * New Features * The remote control API (rc) was greatly expanded to allow full control over rclone (Nick Craig-Wood) * sensitive operations require authorization or the `--rc-no-auth` flag * config/* operations to configure rclone * options/* for reading/setting command line flags * operations/* for all low level operations, eg copy file, list directory * sync/* for sync, copy and move * `--rc-files` flag to serve files on the rc http server * this is for building web native GUIs for rclone * Optionally serving objects on the rc http server * Ensure rclone fails to start up if the `--rc` port is in use already * See [the rc docs](https://rclone.org/rc/) for more info * sync/copy/move * Make `--files-from` only read the objects specified and don't scan directories (Nick Craig-Wood) * This is a huge speed improvement for destinations with lots of files * filter: Add `--ignore-case` flag (Nick Craig-Wood) * ncdu: Add remove function ('d' key) (Henning Surmeier) * rc command * Add `--json` flag for structured JSON input (Nick Craig-Wood) * Add `--user` and `--pass` flags and interpret `--rc-user`, `--rc-pass`, `--rc-addr` (Nick Craig-Wood) * build * Require go1.8 or later for compilation (Nick Craig-Wood) * Enable softfloat on MIPS arch (Scott Edlund) * Integration test framework revamped with a better report and better retries (Nick Craig-Wood) * Bug Fixes * cmd: Make `--progress` update the stats correctly at the end (Nick Craig-Wood) * config: Create config directory on save if it is missing (Nick Craig-Wood) * dedupe: Check for existing filename before renaming a dupe file (ssaqua) * move: Don't create directories with `--dry-run` (Nick Craig-Wood) * operations: Fix Purge and Rmdirs when dir is not the root (Nick Craig-Wood) * serve http/webdav/restic: Ensure rclone exits if the port is in use (Nick Craig-Wood) * Mount * Make `--volname` work for Windows and macOS (Nick Craig-Wood) * Azure Blob * Avoid context deadline exceeded error by setting a large TryTimeout value (brused27) * Fix erroneous Rmdir error "directory not empty" (Nick Craig-Wood) * Wait for up to 60s to create a just deleted container (Nick Craig-Wood) * Dropbox * Add dropbox impersonate support (Jake Coggiano) * Jottacloud * Fix bug in `--fast-list` handing of empty folders (albertony) * Opendrive * Fix transfer of files with `+` and `&` in (Nick Craig-Wood) * Fix retries of upload chunks (Nick Craig-Wood) * S3 * Set ACL for server side copies to that provided by the user (Nick Craig-Wood) * Fix role_arn, credential_source, ... (Erik Swanson) * Add config info for Wasabi's US-West endpoint (Henry Ptasinski) * SFTP * Ensure file hash checking is really disabled (Jon Fautley) * Swift * Add pacer for retries to make swift more reliable (Nick Craig-Wood) * WebDAV * Add Content-Type to PUT requests (Nick Craig-Wood) * Fix config parsing so `--webdav-user` and `--webdav-pass` flags work (Nick Craig-Wood) * Add RFC3339 date format (Ralf Hemberger) * Yandex * The yandex backend was re-written (Sebastian Bünger) * This implements low level retries (Sebastian Bünger) * Copy, Move, DirMove, PublicLink and About optional interfaces (Sebastian Bünger) * Improved general error handling (Sebastian Bünger) * Removed ListR for now due to inconsistent behaviour (Sebastian Bünger) ## v1.44 - 2018-10-15 * New commands * serve ftp: Add ftp server (Antoine GIRARD) * settier: perform storage tier changes on supported remotes (sandeepkru) * New Features * Reworked command line help * Make default help less verbose (Nick Craig-Wood) * Split flags up into global and backend flags (Nick Craig-Wood) * Implement specialised help for flags and backends (Nick Craig-Wood) * Show URL of backend help page when starting config (Nick Craig-Wood) * stats: Long names now split in center (Joanna Marek) * Add `--log-format` flag for more control over log output (dcpu) * rc: Add support for OPTIONS and basic CORS (frenos) * stats: show FatalErrors and NoRetryErrors in stats (Cédric Connes) * Bug Fixes * Fix -P not ending with a new line (Nick Craig-Wood) * config: don't create default config dir when user supplies `--config` (albertony) * Don't print non-ASCII characters with `--progress` on windows (Nick Craig-Wood) * Correct logs for excluded items (ssaqua) * Mount * Remove EXPERIMENTAL tags (Nick Craig-Wood) * VFS * Fix race condition detected by serve ftp tests (Nick Craig-Wood) * Add vfs/poll-interval rc command (Fabian Möller) * Enable rename for nearly all remotes using server side Move or Copy (Nick Craig-Wood) * Reduce directory cache cleared by poll-interval (Fabian Möller) * Remove EXPERIMENTAL tags (Nick Craig-Wood) * Local * Skip bad symlinks in dir listing with -L enabled (Cédric Connes) * Preallocate files on Windows to reduce fragmentation (Nick Craig-Wood) * Preallocate files on linux with fallocate(2) (Nick Craig-Wood) * Cache * Add cache/fetch rc function (Fabian Möller) * Fix worker scale down (Fabian Möller) * Improve performance by not sending info requests for cached chunks (dcpu) * Fix error return value of cache/fetch rc method (Fabian Möller) * Documentation fix for cache-chunk-total-size (Anagh Kumar Baranwal) * Preserve leading / in wrapped remote path (Fabian Möller) * Add plex_insecure option to skip certificate validation (Fabian Möller) * Remove entries that no longer exist in the source (dcpu) * Crypt * Preserve leading / in wrapped remote path (Fabian Möller) * Alias * Fix handling of Windows network paths (Nick Craig-Wood) * Azure Blob * Add `--azureblob-list-chunk` parameter (Santiago Rodríguez) * Implemented settier command support on azureblob remote. (sandeepkru) * Work around SDK bug which causes errors for chunk-sized files (Nick Craig-Wood) * Box * Implement link sharing. (Sebastian Bünger) * Drive * Add `--drive-import-formats` - google docs can now be imported (Fabian Möller) * Rewrite mime type and extension handling (Fabian Möller) * Add document links (Fabian Möller) * Add support for multipart document extensions (Fabian Möller) * Add support for apps-script to json export (Fabian Möller) * Fix escaped chars in documents during list (Fabian Möller) * Add `--drive-v2-download-min-size` a workaround for slow downloads (Fabian Möller) * Improve directory notifications in ChangeNotify (Fabian Möller) * When listing team drives in config, continue on failure (Nick Craig-Wood) * FTP * Add a small pause after failed upload before deleting file (Nick Craig-Wood) * Google Cloud Storage * Fix service_account_file being ignored (Fabian Möller) * Jottacloud * Minor improvement in quota info (omit if unlimited) (albertony) * Add `--fast-list` support (albertony) * Add permanent delete support: `--jottacloud-hard-delete` (albertony) * Add link sharing support (albertony) * Fix handling of reserved characters. (Sebastian Bünger) * Fix socket leak on Object.Remove (Nick Craig-Wood) * Onedrive * Rework to support Microsoft Graph (Cnly) * **NB** this will require re-authenticating the remote * Removed upload cutoff and always do session uploads (Oliver Heyme) * Use single-part upload for empty files (Cnly) * Fix new fields not saved when editing old config (Alex Chen) * Fix sometimes special chars in filenames not replaced (Alex Chen) * Ignore OneNote files by default (Alex Chen) * Add link sharing support (jackyzy823) * S3 * Use custom pacer, to retry operations when reasonable (Craig Miskell) * Use configured server-side-encryption and storage class options when calling CopyObject() (Paul Kohout) * Make `--s3-v2-auth` flag (Nick Craig-Wood) * Fix v2 auth on files with spaces (Nick Craig-Wood) * Union * Implement union backend which reads from multiple backends (Felix Brucker) * Implement optional interfaces (Move, DirMove, Copy etc) (Nick Craig-Wood) * Fix ChangeNotify to support multiple remotes (Fabian Möller) * Fix `--backup-dir` on union backend (Nick Craig-Wood) * WebDAV * Add another time format (Nick Craig-Wood) * Add a small pause after failed upload before deleting file (Nick Craig-Wood) * Add workaround for missing mtime (buergi) * Sharepoint: Renew cookies after 12hrs (Henning Surmeier) * Yandex * Remove redundant nil checks (teresy) ## v1.43.1 - 2018-09-07 Point release to fix hubic and azureblob backends. * Bug Fixes * ncdu: Return error instead of log.Fatal in Show (Fabian Möller) * cmd: Fix crash with `--progress` and `--stats 0` (Nick Craig-Wood) * docs: Tidy website display (Anagh Kumar Baranwal) * Azure Blob: * Fix multi-part uploads. (sandeepkru) * Hubic * Fix uploads (Nick Craig-Wood) * Retry auth fetching if it fails to make hubic more reliable (Nick Craig-Wood) ## v1.43 - 2018-09-01 * New backends * Jottacloud (Sebastian Bünger) * New commands * copyurl: copies a URL to a remote (Denis) * New Features * Reworked config for backends (Nick Craig-Wood) * All backend config can now be supplied by command line, env var or config file * Advanced section in the config wizard for the optional items * A large step towards rclone backends being usable in other go software * Allow on the fly remotes with :backend: syntax * Stats revamp * Add `--progress`/`-P` flag to show interactive progress (Nick Craig-Wood) * Show the total progress of the sync in the stats (Nick Craig-Wood) * Add `--stats-one-line` flag for single line stats (Nick Craig-Wood) * Added weekday schedule into `--bwlimit` (Mateusz) * lsjson: Add option to show the original object IDs (Fabian Möller) * serve webdav: Make Content-Type without reading the file and add `--etag-hash` (Nick Craig-Wood) * build * Build macOS with native compiler (Nick Craig-Wood) * Update to use go1.11 for the build (Nick Craig-Wood) * rc * Added core/stats to return the stats (reddi1) * `version --check`: Prints the current release and beta versions (Nick Craig-Wood) * Bug Fixes * accounting * Fix time to completion estimates (Nick Craig-Wood) * Fix moving average speed for file stats (Nick Craig-Wood) * config: Fix error reading password from piped input (Nick Craig-Wood) * move: Fix `--delete-empty-src-dirs` flag to delete all empty dirs on move (ishuah) * Mount * Implement `--daemon-timeout` flag for OSXFUSE (Nick Craig-Wood) * Fix mount `--daemon` not working with encrypted config (Alex Chen) * Clip the number of blocks to 2^32-1 on macOS - fixes borg backup (Nick Craig-Wood) * VFS * Enable vfs-read-chunk-size by default (Fabian Möller) * Add the vfs/refresh rc command (Fabian Möller) * Add non recursive mode to vfs/refresh rc command (Fabian Möller) * Try to seek buffer on read only files (Fabian Möller) * Local * Fix crash when deprecated `--local-no-unicode-normalization` is supplied (Nick Craig-Wood) * Fix mkdir error when trying to copy files to the root of a drive on windows (Nick Craig-Wood) * Cache * Fix nil pointer deref when using lsjson on cached directory (Nick Craig-Wood) * Fix nil pointer deref for occasional crash on playback (Nick Craig-Wood) * Crypt * Fix accounting when checking hashes on upload (Nick Craig-Wood) * Amazon Cloud Drive * Make very clear in the docs that rclone has no ACD keys (Nick Craig-Wood) * Azure Blob * Add connection string and SAS URL auth (Nick Craig-Wood) * List the container to see if it exists (Nick Craig-Wood) * Port new Azure Blob Storage SDK (sandeepkru) * Added blob tier, tier between Hot, Cool and Archive. (sandeepkru) * Remove leading / from paths (Nick Craig-Wood) * B2 * Support Application Keys (Nick Craig-Wood) * Remove leading / from paths (Nick Craig-Wood) * Box * Fix upload of > 2GB files on 32 bit platforms (Nick Craig-Wood) * Make `--box-commit-retries` flag defaulting to 100 to fix large uploads (Nick Craig-Wood) * Drive * Add `--drive-keep-revision-forever` flag (lewapm) * Handle gdocs when filtering file names in list (Fabian Möller) * Support using `--fast-list` for large speedups (Fabian Möller) * FTP * Fix Put mkParentDir failed: 521 for BunnyCDN (Nick Craig-Wood) * Google Cloud Storage * Fix index out of range error with `--fast-list` (Nick Craig-Wood) * Jottacloud * Fix MD5 error check (Oliver Heyme) * Handle empty time values (Martin Polden) * Calculate missing MD5s (Oliver Heyme) * Docs, fixes and tests for MD5 calculation (Nick Craig-Wood) * Add optional MimeTyper interface. (Sebastian Bünger) * Implement optional About interface (for `df` support). (Sebastian Bünger) * Mega * Wait for events instead of arbitrary sleeping (Nick Craig-Wood) * Add `--mega-hard-delete` flag (Nick Craig-Wood) * Fix failed logins with upper case chars in email (Nick Craig-Wood) * Onedrive * Shared folder support (Yoni Jah) * Implement DirMove (Cnly) * Fix rmdir sometimes deleting directories with contents (Nick Craig-Wood) * Pcloud * Delete half uploaded files on upload error (Nick Craig-Wood) * Qingstor * Remove leading / from paths (Nick Craig-Wood) * S3 * Fix index out of range error with `--fast-list` (Nick Craig-Wood) * Add `--s3-force-path-style` (Nick Craig-Wood) * Add support for KMS Key ID (bsteiss) * Remove leading / from paths (Nick Craig-Wood) * Swift * Add `storage_policy` (Ruben Vandamme) * Make it so just `storage_url` or `auth_token` can be overridden (Nick Craig-Wood) * Fix server side copy bug for unusual file names (Nick Craig-Wood) * Remove leading / from paths (Nick Craig-Wood) * WebDAV * Ensure we call MKCOL with a URL with a trailing / for QNAP interop (Nick Craig-Wood) * If root ends with / then don't check if it is a file (Nick Craig-Wood) * Don't accept redirects when reading metadata (Nick Craig-Wood) * Add bearer token (Macaroon) support for dCache (Nick Craig-Wood) * Document dCache and Macaroons (Onno Zweers) * Sharepoint recursion with different depth (Henning) * Attempt to remove failed uploads (Nick Craig-Wood) * Yandex * Fix listing/deleting files in the root (Nick Craig-Wood) ## v1.42 - 2018-06-16 * New backends * OpenDrive (Oliver Heyme, Jakub Karlicek, ncw) * New commands * deletefile command (Filip Bartodziej) * New Features * copy, move: Copy single files directly, don't use `--files-from` work-around * this makes them much more efficient * Implement `--max-transfer` flag to quit transferring at a limit * make exit code 8 for `--max-transfer` exceeded * copy: copy empty source directories to destination (Ishuah Kariuki) * check: Add `--one-way` flag (Kasper Byrdal Nielsen) * Add siginfo handler for macOS for ctrl-T stats (kubatasiemski) * rc * add core/gc to run a garbage collection on demand * enable go profiling by default on the `--rc` port * return error from remote on failure * lsf * Add `--absolute` flag to add a leading / onto path names * Add `--csv` flag for compliant CSV output * Add 'm' format specifier to show the MimeType * Implement 'i' format for showing object ID * lsjson * Add MimeType to the output * Add ID field to output to show Object ID * Add `--retries-sleep` flag (Benjamin Joseph Dag) * Oauth tidy up web page and error handling (Henning Surmeier) * Bug Fixes * Password prompt output with `--log-file` fixed for unix (Filip Bartodziej) * Calculate ModifyWindow each time on the fly to fix various problems (Stefan Breunig) * Mount * Only print "File.rename error" if there actually is an error (Stefan Breunig) * Delay rename if file has open writers instead of failing outright (Stefan Breunig) * Ensure atexit gets run on interrupt * macOS enhancements * Make `--noappledouble` `--noapplexattr` * Add `--volname` flag and remove special chars from it * Make Get/List/Set/Remove xattr return ENOSYS for efficiency * Make `--daemon` work for macOS without CGO * VFS * Add `--vfs-read-chunk-size` and `--vfs-read-chunk-size-limit` (Fabian Möller) * Fix ChangeNotify for new or changed folders (Fabian Möller) * Local * Fix symlink/junction point directory handling under Windows * **NB** you will need to add `-L` to your command line to copy files with reparse points * Cache * Add non cached dirs on notifications (Remus Bunduc) * Allow root to be expired from rc (Remus Bunduc) * Clean remaining empty folders from temp upload path (Remus Bunduc) * Cache lists using batch writes (Remus Bunduc) * Use secure websockets for HTTPS Plex addresses (John Clayton) * Reconnect plex websocket on failures (Remus Bunduc) * Fix panic when running without plex configs (Remus Bunduc) * Fix root folder caching (Remus Bunduc) * Crypt * Check the crypted hash of files when uploading for extra data security * Dropbox * Make Dropbox for business folders accessible using an initial `/` in the path * Google Cloud Storage * Low level retry all operations if necessary * Google Drive * Add `--drive-acknowledge-abuse` to download flagged files * Add `--drive-alternate-export` to fix large doc export * Don't attempt to choose Team Drives when using rclone config create * Fix change list polling with team drives * Fix ChangeNotify for folders (Fabian Möller) * Fix about (and df on a mount) for team drives * Onedrive * Errorhandler for onedrive for business requests (Henning Surmeier) * S3 * Adjust upload concurrency with `--s3-upload-concurrency` (themylogin) * Fix `--s3-chunk-size` which was always using the minimum * SFTP * Add `--ssh-path-override` flag (Piotr Oleszczyk) * Fix slow downloads for long latency connections * Webdav * Add workarounds for biz.mail.ru * Ignore Reason-Phrase in status line to fix 4shared (Rodrigo) * Better error message generation ## v1.41 - 2018-04-28 * New backends * Mega support added * Webdav now supports SharePoint cookie authentication (hensur) * New commands * link: create public link to files and folders (Stefan Breunig) * about: gets quota info from a remote (a-roussos, ncw) * hashsum: a generic tool for any hash to produce md5sum like output * New Features * lsd: Add -R flag and fix and update docs for all ls commands * ncdu: added a "refresh" key - CTRL-L (Keith Goldfarb) * serve restic: Add append-only mode (Steve Kriss) * serve restic: Disallow overwriting files in append-only mode (Alexander Neumann) * serve restic: Print actual listener address (Matt Holt) * size: Add --json flag (Matthew Holt) * sync: implement --ignore-errors (Mateusz Pabian) * dedupe: Add dedupe largest functionality (Richard Yang) * fs: Extend SizeSuffix to include TB and PB for rclone about * fs: add --dump goroutines and --dump openfiles for debugging * rc: implement core/memstats to print internal memory usage info * rc: new call rc/pid (Michael P. Dubner) * Compile * Drop support for go1.6 * Release * Fix `make tarball` (Chih-Hsuan Yen) * Bug Fixes * filter: fix --min-age and --max-age together check * fs: limit MaxIdleConns and MaxIdleConnsPerHost in transport * lsd,lsf: make sure all times we output are in local time * rc: fix setting bwlimit to unlimited * rc: take note of the --rc-addr flag too as per the docs * Mount * Use About to return the correct disk total/used/free (eg in `df`) * Set `--attr-timeout default` to `1s` - fixes: * rclone using too much memory * rclone not serving files to samba * excessive time listing directories * Fix `df -i` (upstream fix) * VFS * Filter files `.` and `..` from directory listing * Only make the VFS cache if --vfs-cache-mode > Off * Local * Add --local-no-check-updated to disable updated file checks * Retry remove on Windows sharing violation error * Cache * Flush the memory cache after close * Purge file data on notification * Always forget parent dir for notifications * Integrate with Plex websocket * Add rc cache/stats (seuffert) * Add info log on notification * Box * Fix failure reading large directories - parse file/directory size as float * Dropbox * Fix crypt+obfuscate on dropbox * Fix repeatedly uploading the same files * FTP * Work around strange response from box FTP server * More workarounds for FTP servers to fix mkParentDir error * Fix no error on listing non-existent directory * Google Cloud Storage * Add service_account_credentials (Matt Holt) * Detect bucket presence by listing it - minimises permissions needed * Ignore zero length directory markers * Google Drive * Add service_account_credentials (Matt Holt) * Fix directory move leaving a hardlinked directory behind * Return proper google errors when Opening files * When initialized with a filepath, optional features used incorrect root path (Stefan Breunig) * HTTP * Fix sync for servers which don't return Content-Length in HEAD * Onedrive * Add QuickXorHash support for OneDrive for business * Fix socket leak in multipart session upload * S3 * Look in S3 named profile files for credentials * Add `--s3-disable-checksum` to disable checksum uploading (Chris Redekop) * Hierarchical configuration support (Giri Badanahatti) * Add in config for all the supported S3 providers * Add One Zone Infrequent Access storage class (Craig Rachel) * Add --use-server-modtime support (Peter Baumgartner) * Add --s3-chunk-size option to control multipart uploads * Ignore zero length directory markers * SFTP * Update docs to match code, fix typos and clarify disable_hashcheck prompt (Michael G. Noll) * Update docs with Synology quirks * Fail soft with a debug on hash failure * Swift * Add --use-server-modtime support (Peter Baumgartner) * Webdav * Support SharePoint cookie authentication (hensur) * Strip leading and trailing / off root ## v1.40 - 2018-03-19 * New backends * Alias backend to create aliases for existing remote names (Fabian Möller) * New commands * `lsf`: list for parsing purposes (Jakub Tasiemski) * by default this is a simple non recursive list of files and directories * it can be configured to add more info in an easy to parse way * `serve restic`: for serving a remote as a Restic REST endpoint * This enables restic to use any backends that rclone can access * Thanks Alexander Neumann for help, patches and review * `rc`: enable the remote control of a running rclone * The running rclone must be started with --rc and related flags. * Currently there is support for bwlimit, and flushing for mount and cache. * New Features * `--max-delete` flag to add a delete threshold (Bjørn Erik Pedersen) * All backends now support RangeOption for ranged Open * `cat`: Use RangeOption for limited fetches to make more efficient * `cryptcheck`: make reading of nonce more efficient with RangeOption * serve http/webdav/restic * support SSL/TLS * add `--user` `--pass` and `--htpasswd` for authentication * `copy`/`move`: detect file size change during copy/move and abort transfer (ishuah) * `cryptdecode`: added option to return encrypted file names. (ishuah) * `lsjson`: add `--encrypted` to show encrypted name (Jakub Tasiemski) * Add `--stats-file-name-length` to specify the printed file name length for stats (Will Gunn) * Compile * Code base was shuffled and factored * backends moved into a backend directory * large packages split up * See the CONTRIBUTING.md doc for info as to what lives where now * Update to using go1.10 as the default go version * Implement daily [full integration tests](https://pub.rclone.org/integration-tests/) * Release * Include a source tarball and sign it and the binaries * Sign the git tags as part of the release process * Add .deb and .rpm packages as part of the build * Make a beta release for all branches on the main repo (but not pull requests) * Bug Fixes * config: fixes errors on non existing config by loading config file only on first access * config: retry saving the config after failure (Mateusz) * sync: when using `--backup-dir` don't delete files if we can't set their modtime * this fixes odd behaviour with Dropbox and `--backup-dir` * fshttp: fix idle timeouts for HTTP connections * `serve http`: fix serving files with : in - fixes * Fix `--exclude-if-present` to ignore directories which it doesn't have permission for (Iakov Davydov) * Make accounting work properly with crypt and b2 * remove `--no-traverse` flag because it is obsolete * Mount * Add `--attr-timeout` flag to control attribute caching in kernel * this now defaults to 0 which is correct but less efficient * see [the mount docs](/commands/rclone_mount/#attribute-caching) for more info * Add `--daemon` flag to allow mount to run in the background (ishuah) * Fix: Return ENOSYS rather than EIO on attempted link * This fixes FileZilla accessing an rclone mount served over sftp. * Fix setting modtime twice * Mount tests now run on CI for Linux (mount & cmount)/Mac/Windows * Many bugs fixed in the VFS layer - see below * VFS * Many fixes for `--vfs-cache-mode` writes and above * Update cached copy if we know it has changed (fixes stale data) * Clean path names before using them in the cache * Disable cache cleaner if `--vfs-cache-poll-interval=0` * Fill and clean the cache immediately on startup * Fix Windows opening every file when it stats the file * Fix applying modtime for an open Write Handle * Fix creation of files when truncating * Write 0 bytes when flushing unwritten handles to avoid race conditions in FUSE * Downgrade "poll-interval is not supported" message to Info * Make OpenFile and friends return EINVAL if O_RDONLY and O_TRUNC * Local * Downgrade "invalid cross-device link: trying copy" to debug * Make DirMove return fs.ErrorCantDirMove to allow fallback to Copy for cross device * Fix race conditions updating the hashes * Cache * Add support for polling - cache will update when remote changes on supported backends * Reduce log level for Plex api * Fix dir cache issue * Implement `--cache-db-wait-time` flag * Improve efficiency with RangeOption and RangeSeek * Fix dirmove with temp fs enabled * Notify vfs when using temp fs * Offline uploading * Remote control support for path flushing * Amazon cloud drive * Rclone no longer has any working keys - disable integration tests * Implement DirChangeNotify to notify cache/vfs/mount of changes * Azureblob * Don't check for bucket/container presence if listing was OK * this makes rclone do one less request per invocation * Improve accounting for chunked uploads * Backblaze B2 * Don't check for bucket/container presence if listing was OK * this makes rclone do one less request per invocation * Box * Improve accounting for chunked uploads * Dropbox * Fix custom oauth client parameters * Google Cloud Storage * Don't check for bucket/container presence if listing was OK * this makes rclone do one less request per invocation * Google Drive * Migrate to api v3 (Fabian Möller) * Add scope configuration and root folder selection * Add `--drive-impersonate` for service accounts * thanks to everyone who tested, explored and contributed docs * Add `--drive-use-created-date` to use created date as modified date (nbuchanan) * Request the export formats only when required * This makes rclone quicker when there are no google docs * Fix finding paths with latin1 chars (a workaround for a drive bug) * Fix copying of a single Google doc file * Fix `--drive-auth-owner-only` to look in all directories * HTTP * Fix handling of directories with & in * Onedrive * Removed upload cutoff and always do session uploads * this stops the creation of multiple versions on business onedrive * Overwrite object size value with real size when reading file. (Victor) * this fixes oddities when onedrive misreports the size of images * Pcloud * Remove unused chunked upload flag and code * Qingstor * Don't check for bucket/container presence if listing was OK * this makes rclone do one less request per invocation * S3 * Support hashes for multipart files (Chris Redekop) * Initial support for IBM COS (S3) (Giri Badanahatti) * Update docs to discourage use of v2 auth with CEPH and others * Don't check for bucket/container presence if listing was OK * this makes rclone do one less request per invocation * Fix server side copy and set modtime on files with + in * SFTP * Add option to disable remote hash check command execution (Jon Fautley) * Add `--sftp-ask-password` flag to prompt for password when needed (Leo R. Lundgren) * Add `set_modtime` configuration option * Fix following of symlinks * Fix reading config file outside of Fs setup * Fix reading $USER in username fallback not $HOME * Fix running under crontab - Use correct OS way of reading username * Swift * Fix refresh of authentication token * in v1.39 a bug was introduced which ignored new tokens - this fixes it * Fix extra HEAD transaction when uploading a new file * Don't check for bucket/container presence if listing was OK * this makes rclone do one less request per invocation * Webdav * Add new time formats to support mydrive.ch and others ## v1.39 - 2017-12-23 * New backends * WebDAV * tested with nextcloud, owncloud, put.io and others! * Pcloud * cache - wraps a cache around other backends (Remus Bunduc) * useful in combination with mount * NB this feature is in beta so use with care * New commands * serve command with subcommands: * serve webdav: this implements a webdav server for any rclone remote. * serve http: command to serve a remote over HTTP * config: add sub commands for full config file management * create/delete/dump/edit/file/password/providers/show/update * touch: to create or update the timestamp of a file (Jakub Tasiemski) * New Features * curl install for rclone (Filip Bartodziej) * --stats now shows percentage, size, rate and ETA in condensed form (Ishuah Kariuki) * --exclude-if-present to exclude a directory if a file is present (Iakov Davydov) * rmdirs: add --leave-root flag (lewapm) * move: add --delete-empty-src-dirs flag to remove dirs after move (Ishuah Kariuki) * Add --dump flag, introduce --dump requests, responses and remove --dump-auth, --dump-filters * Obscure X-Auth-Token: from headers when dumping too * Document and implement exit codes for different failure modes (Ishuah Kariuki) * Compile * Bug Fixes * Retry lots more different types of errors to make multipart transfers more reliable * Save the config before asking for a token, fixes disappearing oauth config * Warn the user if --include and --exclude are used together (Ernest Borowski) * Fix duplicate files (eg on Google drive) causing spurious copies * Allow trailing and leading whitespace for passwords (Jason Rose) * ncdu: fix crashes on empty directories * rcat: fix goroutine leak * moveto/copyto: Fix to allow copying to the same name * Mount * --vfs-cache mode to make writes into mounts more reliable. * this requires caching files on the disk (see --cache-dir) * As this is a new feature, use with care * Use sdnotify to signal systemd the mount is ready (Fabian Möller) * Check if directory is not empty before mounting (Ernest Borowski) * Local * Add error message for cross file system moves * Fix equality check for times * Dropbox * Rework multipart upload * buffer the chunks when uploading large files so they can be retried * change default chunk size to 48MB now we are buffering them in memory * retry every error after the first chunk is done successfully * Fix error when renaming directories * Swift * Fix crash on bad authentication * Google Drive * Add service account support (Tim Cooijmans) * S3 * Make it work properly with Digital Ocean Spaces (Andrew Starr-Bochicchio) * Fix crash if a bad listing is received * Add support for ECS task IAM roles (David Minor) * Backblaze B2 * Fix multipart upload retries * Fix --hard-delete to make it work 100% of the time * Swift * Allow authentication with storage URL and auth key (Giovanni Pizzi) * Add new fields for swift configuration to support IBM Bluemix Swift (Pierre Carlson) * Add OS_TENANT_ID and OS_USER_ID to config * Allow configs with user id instead of user name * Check if swift segments container exists before creating (John Leach) * Fix memory leak in swift transfers (upstream fix) * SFTP * Add option to enable the use of aes128-cbc cipher (Jon Fautley) * Amazon cloud drive * Fix download of large files failing with "Only one auth mechanism allowed" * crypt * Option to encrypt directory names or leave them intact * Implement DirChangeNotify (Fabian Möller) * onedrive * Add option to choose resourceURL during setup of OneDrive Business account if more than one is available for user ## v1.38 - 2017-09-30 * New backends * Azure Blob Storage (thanks Andrei Dragomir) * Box * Onedrive for Business (thanks Oliver Heyme) * QingStor from QingCloud (thanks wuyu) * New commands * `rcat` - read from standard input and stream upload * `tree` - shows a nicely formatted recursive listing * `cryptdecode` - decode crypted file names (thanks ishuah) * `config show` - print the config file * `config file` - print the config file location * New Features * Empty directories are deleted on `sync` * `dedupe` - implement merging of duplicate directories * `check` and `cryptcheck` made more consistent and use less memory * `cleanup` for remaining remotes (thanks ishuah) * `--immutable` for ensuring that files don't change (thanks Jacob McNamee) * `--user-agent` option (thanks Alex McGrath Kraak) * `--disable` flag to disable optional features * `--bind` flag for choosing the local addr on outgoing connections * Support for zsh auto-completion (thanks bpicode) * Stop normalizing file names but do a normalized compare in `sync` * Compile * Update to using go1.9 as the default go version * Remove snapd build due to maintenance problems * Bug Fixes * Improve retriable error detection which makes multipart uploads better * Make `check` obey `--ignore-size` * Fix bwlimit toggle in conjunction with schedules (thanks cbruegg) * `config` ensures newly written config is on the same mount * Local * Revert to copy when moving file across file system boundaries * `--skip-links` to suppress symlink warnings (thanks Zhiming Wang) * Mount * Re-use `rcat` internals to support uploads from all remotes * Dropbox * Fix "entry doesn't belong in directory" error * Stop using deprecated API methods * Swift * Fix server side copy to empty container with `--fast-list` * Google Drive * Change the default for `--drive-use-trash` to `true` * S3 * Set session token when using STS (thanks Girish Ramakrishnan) * Glacier docs and error messages (thanks Jan Varho) * Read 1000 (not 1024) items in dir listings to fix Wasabi * Backblaze B2 * Fix SHA1 mismatch when downloading files with no SHA1 * Calculate missing hashes on the fly instead of spooling * `--b2-hard-delete` to permanently delete (not hide) files (thanks John Papandriopoulos) * Hubic * Fix creating containers - no longer have to use the `default` container * Swift * Optionally configure from a standard set of OpenStack environment vars * Add `endpoint_type` config * Google Cloud Storage * Fix bucket creation to work with limited permission users * SFTP * Implement connection pooling for multiple ssh connections * Limit new connections per second * Add support for MD5 and SHA1 hashes where available (thanks Christian Brüggemann) * HTTP * Fix URL encoding issues * Fix directories with `:` in * Fix panic with URL encoded content ## v1.37 - 2017-07-22 * New backends * FTP - thanks to Antonio Messina * HTTP - thanks to Vasiliy Tolstov * New commands * rclone ncdu - for exploring a remote with a text based user interface. * rclone lsjson - for listing with a machine readable output * rclone dbhashsum - to show Dropbox style hashes of files (local or Dropbox) * New Features * Implement --fast-list flag * This allows remotes to list recursively if they can * This uses less transactions (important if you pay for them) * This may or may not be quicker * This will use more memory as it has to hold the listing in memory * --old-sync-method deprecated - the remaining uses are covered by --fast-list * This involved a major re-write of all the listing code * Add --tpslimit and --tpslimit-burst to limit transactions per second * this is useful in conjunction with `rclone mount` to limit external apps * Add --stats-log-level so can see --stats without -v * Print password prompts to stderr - Hraban Luyat * Warn about duplicate files when syncing * Oauth improvements * allow auth_url and token_url to be set in the config file * Print redirection URI if using own credentials. * Don't Mkdir at the start of sync to save transactions * Compile * Update build to go1.8.3 * Require go1.6 for building rclone * Compile 386 builds with "GO386=387" for maximum compatibility * Bug Fixes * Fix menu selection when no remotes * Config saving reworked to not kill the file if disk gets full * Don't delete remote if name does not change while renaming * moveto, copyto: report transfers and checks as per move and copy * Local * Add --local-no-unicode-normalization flag - Bob Potter * Mount * Now supported on Windows using cgofuse and WinFsp - thanks to Bill Zissimopoulos for much help * Compare checksums on upload/download via FUSE * Unmount when program ends with SIGINT (Ctrl+C) or SIGTERM - Jérôme Vizcaino * On read only open of file, make open pending until first read * Make --read-only reject modify operations * Implement ModTime via FUSE for remotes that support it * Allow modTime to be changed even before all writers are closed * Fix panic on renames * Fix hang on errored upload * Crypt * Report the name:root as specified by the user * Add an "obfuscate" option for filename encryption - Stephen Harris * Amazon Drive * Fix initialization order for token renewer * Remove revoked credentials, allow oauth proxy config and update docs * B2 * Reduce minimum chunk size to 5MB * Drive * Add team drive support * Reduce bandwidth by adding fields for partial responses - Martin Kristensen * Implement --drive-shared-with-me flag to view shared with me files - Danny Tsai * Add --drive-trashed-only to read only the files in the trash * Remove obsolete --drive-full-list * Add missing seek to start on retries of chunked uploads * Fix stats accounting for upload * Convert / in names to a unicode equivalent (/) * Poll for Google Drive changes when mounted * OneDrive * Fix the uploading of files with spaces * Fix initialization order for token renewer * Display speeds accurately when uploading - Yoni Jah * Swap to using http://localhost:53682/ as redirect URL - Michael Ledin * Retry on token expired error, reset upload body on retry - Yoni Jah * Google Cloud Storage * Add ability to specify location and storage class via config and command line - thanks gdm85 * Create container if necessary on server side copy * Increase directory listing chunk to 1000 to increase performance * Obtain a refresh token for GCS - Steven Lu * Yandex * Fix the name reported in log messages (was empty) * Correct error return for listing empty directory * Dropbox * Rewritten to use the v2 API * Now supports ModTime * Can only set by uploading the file again * If you uploaded with an old rclone, rclone may upload everything again * Use `--size-only` or `--checksum` to avoid this * Now supports the Dropbox content hashing scheme * Now supports low level retries * S3 * Work around eventual consistency in bucket creation * Create container if necessary on server side copy * Add us-east-2 (Ohio) and eu-west-2 (London) S3 regions - Zahiar Ahmed * Swift, Hubic * Fix zero length directory markers showing in the subdirectory listing * this caused lots of duplicate transfers * Fix paged directory listings * this caused duplicate directory errors * Create container if necessary on server side copy * Increase directory listing chunk to 1000 to increase performance * Make sensible error if the user forgets the container * SFTP * Add support for using ssh key files * Fix under Windows * Fix ssh agent on Windows * Adapt to latest version of library - Igor Kharin ## v1.36 - 2017-03-18 * New Features * SFTP remote (Jack Schmidt) * Re-implement sync routine to work a directory at a time reducing memory usage * Logging revamped to be more inline with rsync - now much quieter * -v only shows transfers * -vv is for full debug * --syslog to log to syslog on capable platforms * Implement --backup-dir and --suffix * Implement --track-renames (initial implementation by Bjørn Erik Pedersen) * Add time-based bandwidth limits (Lukas Loesche) * rclone cryptcheck: checks integrity of crypt remotes * Allow all config file variables and options to be set from environment variables * Add --buffer-size parameter to control buffer size for copy * Make --delete-after the default * Add --ignore-checksum flag (fixed by Hisham Zarka) * rclone check: Add --download flag to check all the data, not just hashes * rclone cat: add --head, --tail, --offset, --count and --discard * rclone config: when choosing from a list, allow the value to be entered too * rclone config: allow rename and copy of remotes * rclone obscure: for generating encrypted passwords for rclone's config (T.C. Ferguson) * Comply with XDG Base Directory specification (Dario Giovannetti) * this moves the default location of the config file in a backwards compatible way * Release changes * Ubuntu snap support (Dedsec1) * Compile with go 1.8 * MIPS/Linux big and little endian support * Bug Fixes * Fix copyto copying things to the wrong place if the destination dir didn't exist * Fix parsing of remotes in moveto and copyto * Fix --delete-before deleting files on copy * Fix --files-from with an empty file copying everything * Fix sync: don't update mod times if --dry-run set * Fix MimeType propagation * Fix filters to add ** rules to directory rules * Local * Implement -L, --copy-links flag to allow rclone to follow symlinks * Open files in write only mode so rclone can write to an rclone mount * Fix unnormalised unicode causing problems reading directories * Fix interaction between -x flag and --max-depth * Mount * Implement proper directory handling (mkdir, rmdir, renaming) * Make include and exclude filters apply to mount * Implement read and write async buffers - control with --buffer-size * Fix fsync on for directories * Fix retry on network failure when reading off crypt * Crypt * Add --crypt-show-mapping to show encrypted file mapping * Fix crypt writer getting stuck in a loop * **IMPORTANT** this bug had the potential to cause data corruption when * reading data from a network based remote and * writing to a crypt on Google Drive * Use the cryptcheck command to validate your data if you are concerned * If syncing two crypt remotes, sync the unencrypted remote * Amazon Drive * Fix panics on Move (rename) * Fix panic on token expiry * B2 * Fix inconsistent listings and rclone check * Fix uploading empty files with go1.8 * Constrain memory usage when doing multipart uploads * Fix upload url not being refreshed properly * Drive * Fix Rmdir on directories with trashed files * Fix "Ignoring unknown object" when downloading * Add --drive-list-chunk * Add --drive-skip-gdocs (Károly Oláh) * OneDrive * Implement Move * Fix Copy * Fix overwrite detection in Copy * Fix waitForJob to parse errors correctly * Use token renewer to stop auth errors on long uploads * Fix uploading empty files with go1.8 * Google Cloud Storage * Fix depth 1 directory listings * Yandex * Fix single level directory listing * Dropbox * Normalise the case for single level directory listings * Fix depth 1 listing * S3 * Added ca-central-1 region (Jon Yergatian) ## v1.35 - 2017-01-02 * New Features * moveto and copyto commands for choosing a destination name on copy/move * rmdirs command to recursively delete empty directories * Allow repeated --include/--exclude/--filter options * Only show transfer stats on commands which transfer stuff * show stats on any command using the `--stats` flag * Allow overlapping directories in move when server side dir move is supported * Add --stats-unit option - thanks Scott McGillivray * Bug Fixes * Fix the config file being overwritten when two rclone instances are running * Make rclone lsd obey the filters properly * Fix compilation on mips * Fix not transferring files that don't differ in size * Fix panic on nil retry/fatal error * Mount * Retry reads on error - should help with reliability a lot * Report the modification times for directories from the remote * Add bandwidth accounting and limiting (fixes --bwlimit) * If --stats provided will show stats and which files are transferring * Support R/W files if truncate is set. * Implement statfs interface so df works * Note that write is now supported on Amazon Drive * Report number of blocks in a file - thanks Stefan Breunig * Crypt * Prevent the user pointing crypt at itself * Fix failed to authenticate decrypted block errors * these will now return the underlying unexpected EOF instead * Amazon Drive * Add support for server side move and directory move - thanks Stefan Breunig * Fix nil pointer deref on size attribute * B2 * Use new prefix and delimiter parameters in directory listings * This makes --max-depth 1 dir listings as used in mount much faster * Reauth the account while doing uploads too - should help with token expiry * Drive * Make DirMove more efficient and complain about moving the root * Create destination directory on Move() ## v1.34 - 2016-11-06 * New Features * Stop single file and `--files-from` operations iterating through the source bucket. * Stop removing failed upload to cloud storage remotes * Make ContentType be preserved for cloud to cloud copies * Add support to toggle bandwidth limits via SIGUSR2 - thanks Marco Paganini * `rclone check` shows count of hashes that couldn't be checked * `rclone listremotes` command * Support linux/arm64 build - thanks Fredrik Fornwall * Remove `Authorization:` lines from `--dump-headers` output * Bug Fixes * Ignore files with control characters in the names * Fix `rclone move` command * Delete src files which already existed in dst * Fix deletion of src file when dst file older * Fix `rclone check` on crypted file systems * Make failed uploads not count as "Transferred" * Make sure high level retries show with `-q` * Use a vendor directory with godep for repeatable builds * `rclone mount` - FUSE * Implement FUSE mount options * `--no-modtime`, `--debug-fuse`, `--read-only`, `--allow-non-empty`, `--allow-root`, `--allow-other` * `--default-permissions`, `--write-back-cache`, `--max-read-ahead`, `--umask`, `--uid`, `--gid` * Add `--dir-cache-time` to control caching of directory entries * Implement seek for files opened for read (useful for video players) * with `-no-seek` flag to disable * Fix crash on 32 bit ARM (alignment of 64 bit counter) * ...and many more internal fixes and improvements! * Crypt * Don't show encrypted password in configurator to stop confusion * Amazon Drive * New wait for upload option `--acd-upload-wait-per-gb` * upload timeouts scale by file size and can be disabled * Add 502 Bad Gateway to list of errors we retry * Fix overwriting a file with a zero length file * Fix ACD file size warning limit - thanks Felix Bünemann * Local * Unix: implement `-x`/`--one-file-system` to stay on a single file system * thanks Durval Menezes and Luiz Carlos Rumbelsperger Viana * Windows: ignore the symlink bit on files * Windows: Ignore directory based junction points * B2 * Make sure each upload has at least one upload slot - fixes strange upload stats * Fix uploads when using crypt * Fix download of large files (sha1 mismatch) * Return error when we try to create a bucket which someone else owns * Update B2 docs with Data usage, and Crypt section - thanks Tomasz Mazur * S3 * Command line and config file support for * Setting/overriding ACL - thanks Radek Senfeld * Setting storage class - thanks Asko Tamm * Drive * Make exponential backoff work exactly as per Google specification * add `.epub`, `.odp` and `.tsv` as export formats. * Swift * Don't read metadata for directory marker objects ## v1.33 - 2016-08-24 * New Features * Implement encryption * data encrypted in NACL secretbox format * with optional file name encryption * New commands * rclone mount - implements FUSE mounting of remotes (EXPERIMENTAL) * works on Linux, FreeBSD and OS X (need testers for the last 2!) * rclone cat - outputs remote file or files to the terminal * rclone genautocomplete - command to make a bash completion script for rclone * Editing a remote using `rclone config` now goes through the wizard * Compile with go 1.7 - this fixes rclone on macOS Sierra and on 386 processors * Use cobra for sub commands and docs generation * drive * Document how to make your own client_id * s3 * User-configurable Amazon S3 ACL (thanks Radek Šenfeld) * b2 * Fix stats accounting for upload - no more jumping to 100% done * On cleanup delete hide marker if it is the current file * New B2 API endpoint (thanks Per Cederberg) * Set maximum backoff to 5 Minutes * onedrive * Fix URL escaping in file names - eg uploading files with `+` in them. * amazon cloud drive * Fix token expiry during large uploads * Work around 408 REQUEST_TIMEOUT and 504 GATEWAY_TIMEOUT errors * local * Fix filenames with invalid UTF-8 not being uploaded * Fix problem with some UTF-8 characters on OS X ## v1.32 - 2016-07-13 * Backblaze B2 * Fix upload of files large files not in root ## v1.31 - 2016-07-13 * New Features * Reduce memory on sync by about 50% * Implement --no-traverse flag to stop copy traversing the destination remote. * This can be used to reduce memory usage down to the smallest possible. * Useful to copy a small number of files into a large destination folder. * Implement cleanup command for emptying trash / removing old versions of files * Currently B2 only * Single file handling improved * Now copied with --files-from * Automatically sets --no-traverse when copying a single file * Info on using installing with ansible - thanks Stefan Weichinger * Implement --no-update-modtime flag to stop rclone fixing the remote modified times. * Bug Fixes * Fix move command - stop it running for overlapping Fses - this was causing data loss. * Local * Fix incomplete hashes - this was causing problems for B2. * Amazon Drive * Rename Amazon Cloud Drive to Amazon Drive - no changes to config file needed. * Swift * Add support for non-default project domain - thanks Antonio Messina. * S3 * Add instructions on how to use rclone with minio. * Add ap-northeast-2 (Seoul) and ap-south-1 (Mumbai) regions. * Skip setting the modified time for objects > 5GB as it isn't possible. * Backblaze B2 * Add --b2-versions flag so old versions can be listed and retrieved. * Treat 403 errors (eg cap exceeded) as fatal. * Implement cleanup command for deleting old file versions. * Make error handling compliant with B2 integrations notes. * Fix handling of token expiry. * Implement --b2-test-mode to set `X-Bz-Test-Mode` header. * Set cutoff for chunked upload to 200MB as per B2 guidelines. * Make upload multi-threaded. * Dropbox * Don't retry 461 errors. ## v1.30 - 2016-06-18 * New Features * Directory listing code reworked for more features and better error reporting (thanks to Klaus Post for help). This enables * Directory include filtering for efficiency * --max-depth parameter * Better error reporting * More to come * Retry more errors * Add --ignore-size flag - for uploading images to onedrive * Log -v output to stdout by default * Display the transfer stats in more human readable form * Make 0 size files specifiable with `--max-size 0b` * Add `b` suffix so we can specify bytes in --bwlimit, --min-size etc * Use "password:" instead of "password>" prompt - thanks Klaus Post and Leigh Klotz * Bug Fixes * Fix retry doing one too many retries * Local * Fix problems with OS X and UTF-8 characters * Amazon Drive * Check a file exists before uploading to help with 408 Conflict errors * Reauth on 401 errors - this has been causing a lot of problems * Work around spurious 403 errors * Restart directory listings on error * Google Drive * Check a file exists before uploading to help with duplicates * Fix retry of multipart uploads * Backblaze B2 * Implement large file uploading * S3 * Add AES256 server-side encryption for - thanks Justin R. Wilson * Google Cloud Storage * Make sure we don't use conflicting content types on upload * Add service account support - thanks Michal Witkowski * Swift * Add auth version parameter * Add domain option for openstack (v3 auth) - thanks Fabian Ruff ## v1.29 - 2016-04-18 * New Features * Implement `-I, --ignore-times` for unconditional upload * Improve `dedupe`command * Now removes identical copies without asking * Now obeys `--dry-run` * Implement `--dedupe-mode` for non interactive running * `--dedupe-mode interactive` - interactive the default. * `--dedupe-mode skip` - removes identical files then skips anything left. * `--dedupe-mode first` - removes identical files then keeps the first one. * `--dedupe-mode newest` - removes identical files then keeps the newest one. * `--dedupe-mode oldest` - removes identical files then keeps the oldest one. * `--dedupe-mode rename` - removes identical files then renames the rest to be different. * Bug fixes * Make rclone check obey the `--size-only` flag. * Use "application/octet-stream" if discovered mime type is invalid. * Fix missing "quit" option when there are no remotes. * Google Drive * Increase default chunk size to 8 MB - increases upload speed of big files * Speed up directory listings and make more reliable * Add missing retries for Move and DirMove - increases reliability * Preserve mime type on file update * Backblaze B2 * Enable mod time syncing * This means that B2 will now check modification times * It will upload new files to update the modification times * (there isn't an API to just set the mod time.) * If you want the old behaviour use `--size-only`. * Update API to new version * Fix parsing of mod time when not in metadata * Swift/Hubic * Don't return an MD5SUM for static large objects * S3 * Fix uploading files bigger than 50GB ## v1.28 - 2016-03-01 * New Features * Configuration file encryption - thanks Klaus Post * Improve `rclone config` adding more help and making it easier to understand * Implement `-u`/`--update` so creation times can be used on all remotes * Implement `--low-level-retries` flag * Optionally disable gzip compression on downloads with `--no-gzip-encoding` * Bug fixes * Don't make directories if `--dry-run` set * Fix and document the `move` command * Fix redirecting stderr on unix-like OSes when using `--log-file` * Fix `delete` command to wait until all finished - fixes missing deletes. * Backblaze B2 * Use one upload URL per go routine fixes `more than one upload using auth token` * Add pacing, retries and reauthentication - fixes token expiry problems * Upload without using a temporary file from local (and remotes which support SHA1) * Fix reading metadata for all files when it shouldn't have been * Drive * Fix listing drive documents at root * Disable copy and move for Google docs * Swift * Fix uploading of chunked files with non ASCII characters * Allow setting of `storage_url` in the config - thanks Xavier Lucas * S3 * Allow IAM role and credentials from environment variables - thanks Brian Stengaard * Allow low privilege users to use S3 (check if directory exists during Mkdir) - thanks Jakub Gedeon * Amazon Drive * Retry on more things to make directory listings more reliable ## v1.27 - 2016-01-31 * New Features * Easier headless configuration with `rclone authorize` * Add support for multiple hash types - we now check SHA1 as well as MD5 hashes. * `delete` command which does obey the filters (unlike `purge`) * `dedupe` command to deduplicate a remote. Useful with Google Drive. * Add `--ignore-existing` flag to skip all files that exist on destination. * Add `--delete-before`, `--delete-during`, `--delete-after` flags. * Add `--memprofile` flag to debug memory use. * Warn the user about files with same name but different case * Make `--include` rules add their implicit exclude * at the end of the filter list * Deprecate compiling with go1.3 * Amazon Drive * Fix download of files > 10 GB * Fix directory traversal ("Next token is expired") for large directory listings * Remove 409 conflict from error codes we will retry - stops very long pauses * Backblaze B2 * SHA1 hashes now checked by rclone core * Drive * Add `--drive-auth-owner-only` to only consider files owned by the user - thanks Björn Harrtell * Export Google documents * Dropbox * Make file exclusion error controllable with -q * Swift * Fix upload from unprivileged user. * S3 * Fix updating of mod times of files with `+` in. * Local * Add local file system option to disable UNC on Windows. ## v1.26 - 2016-01-02 * New Features * Yandex storage backend - thank you Dmitry Burdeev ("dibu") * Implement Backblaze B2 storage backend * Add --min-age and --max-age flags - thank you Adriano Aurélio Meirelles * Make ls/lsl/md5sum/size/check obey includes and excludes * Fixes * Fix crash in http logging * Upload releases to github too * Swift * Fix sync for chunked files * OneDrive * Re-enable server side copy * Don't mask HTTP error codes with JSON decode error * S3 * Fix corrupting Content-Type on mod time update (thanks Joseph Spurrier) ## v1.25 - 2015-11-14 * New features * Implement Hubic storage system * Fixes * Fix deletion of some excluded files without --delete-excluded * This could have deleted files unexpectedly on sync * Always check first with `--dry-run`! * Swift * Stop SetModTime losing metadata (eg X-Object-Manifest) * This could have caused data loss for files > 5GB in size * Use ContentType from Object to avoid lookups in listings * OneDrive * disable server side copy as it seems to be broken at Microsoft ## v1.24 - 2015-11-07 * New features * Add support for Microsoft OneDrive * Add `--no-check-certificate` option to disable server certificate verification * Add async readahead buffer for faster transfer of big files * Fixes * Allow spaces in remotes and check remote names for validity at creation time * Allow '&' and disallow ':' in Windows filenames. * Swift * Ignore directory marker objects where appropriate - allows working with Hubic * Don't delete the container if fs wasn't at root * S3 * Don't delete the bucket if fs wasn't at root * Google Cloud Storage * Don't delete the bucket if fs wasn't at root ## v1.23 - 2015-10-03 * New features * Implement `rclone size` for measuring remotes * Fixes * Fix headless config for drive and gcs * Tell the user they should try again if the webserver method failed * Improve output of `--dump-headers` * S3 * Allow anonymous access to public buckets * Swift * Stop chunked operations logging "Failed to read info: Object Not Found" * Use Content-Length on uploads for extra reliability ## v1.22 - 2015-09-28 * Implement rsync like include and exclude flags * swift * Support files > 5GB - thanks Sergey Tolmachev ## v1.21 - 2015-09-22 * New features * Display individual transfer progress * Make lsl output times in localtime * Fixes * Fix allowing user to override credentials again in Drive, GCS and ACD * Amazon Drive * Implement compliant pacing scheme * Google Drive * Make directory reads concurrent for increased speed. ## v1.20 - 2015-09-15 * New features * Amazon Drive support * Oauth support redone - fix many bugs and improve usability * Use "golang.org/x/oauth2" as oauth library of choice * Improve oauth usability for smoother initial signup * drive, googlecloudstorage: optionally use auto config for the oauth token * Implement --dump-headers and --dump-bodies debug flags * Show multiple matched commands if abbreviation too short * Implement server side move where possible * local * Always use UNC paths internally on Windows - fixes a lot of bugs * dropbox * force use of our custom transport which makes timeouts work * Thanks to Klaus Post for lots of help with this release ## v1.19 - 2015-08-28 * New features * Server side copies for s3/swift/drive/dropbox/gcs * Move command - uses server side copies if it can * Implement --retries flag - tries 3 times by default * Build for plan9/amd64 and solaris/amd64 too * Fixes * Make a current version download with a fixed URL for scripting * Ignore rmdir in limited fs rather than throwing error * dropbox * Increase chunk size to improve upload speeds massively * Issue an error message when trying to upload bad file name ## v1.18 - 2015-08-17 * drive * Add `--drive-use-trash` flag so rclone trashes instead of deletes * Add "Forbidden to download" message for files with no downloadURL * dropbox * Remove datastore * This was deprecated and it caused a lot of problems * Modification times and MD5SUMs no longer stored * Fix uploading files > 2GB * s3 * use official AWS SDK from github.com/aws/aws-sdk-go * **NB** will most likely require you to delete and recreate remote * enable multipart upload which enables files > 5GB * tested with Ceph / RadosGW / S3 emulation * many thanks to Sam Liston and Brian Haymore at the [Utah Center for High Performance Computing](https://www.chpc.utah.edu/) for a Ceph test account * misc * Show errors when reading the config file * Do not print stats in quiet mode - thanks Leonid Shalupov * Add FAQ * Fix created directories not obeying umask * Linux installation instructions - thanks Shimon Doodkin ## v1.17 - 2015-06-14 * dropbox: fix case insensitivity issues - thanks Leonid Shalupov ## v1.16 - 2015-06-09 * Fix uploading big files which was causing timeouts or panics * Don't check md5sum after download with --size-only ## v1.15 - 2015-06-06 * Add --checksum flag to only discard transfers by MD5SUM - thanks Alex Couper * Implement --size-only flag to sync on size not checksum & modtime * Expand docs and remove duplicated information * Document rclone's limitations with directories * dropbox: update docs about case insensitivity ## v1.14 - 2015-05-21 * local: fix encoding of non utf-8 file names - fixes a duplicate file problem * drive: docs about rate limiting * google cloud storage: Fix compile after API change in "google.golang.org/api/storage/v1" ## v1.13 - 2015-05-10 * Revise documentation (especially sync) * Implement --timeout and --conntimeout * s3: ignore etags from multipart uploads which aren't md5sums ## v1.12 - 2015-03-15 * drive: Use chunked upload for files above a certain size * drive: add --drive-chunk-size and --drive-upload-cutoff parameters * drive: switch to insert from update when a failed copy deletes the upload * core: Log duplicate files if they are detected ## v1.11 - 2015-03-04 * swift: add region parameter * drive: fix crash on failed to update remote mtime * In remote paths, change native directory separators to / * Add synchronization to ls/lsl/lsd output to stop corruptions * Ensure all stats/log messages to go stderr * Add --log-file flag to log everything (including panics) to file * Make it possible to disable stats printing with --stats=0 * Implement --bwlimit to limit data transfer bandwidth ## v1.10 - 2015-02-12 * s3: list an unlimited number of items * Fix getting stuck in the configurator ## v1.09 - 2015-02-07 * windows: Stop drive letters (eg C:) getting mixed up with remotes (eg drive:) * local: Fix directory separators on Windows * drive: fix rate limit exceeded errors ## v1.08 - 2015-02-04 * drive: fix subdirectory listing to not list entire drive * drive: Fix SetModTime * dropbox: adapt code to recent library changes ## v1.07 - 2014-12-23 * google cloud storage: fix memory leak ## v1.06 - 2014-12-12 * Fix "Couldn't find home directory" on OSX * swift: Add tenant parameter * Use new location of Google API packages ## v1.05 - 2014-08-09 * Improved tests and consequently lots of minor fixes * core: Fix race detected by go race detector * core: Fixes after running errcheck * drive: reset root directory on Rmdir and Purge * fs: Document that Purger returns error on empty directory, test and fix * google cloud storage: fix ListDir on subdirectory * google cloud storage: re-read metadata in SetModTime * s3: make reading metadata more reliable to work around eventual consistency problems * s3: strip trailing / from ListDir() * swift: return directories without / in ListDir ## v1.04 - 2014-07-21 * google cloud storage: Fix crash on Update ## v1.03 - 2014-07-20 * swift, s3, dropbox: fix updated files being marked as corrupted * Make compile with go 1.1 again ## v1.02 - 2014-07-19 * Implement Dropbox remote * Implement Google Cloud Storage remote * Verify Md5sums and Sizes after copies * Remove times from "ls" command - lists sizes only * Add add "lsl" - lists times and sizes * Add "md5sum" command ## v1.01 - 2014-07-04 * drive: fix transfer of big files using up lots of memory ## v1.00 - 2014-07-03 * drive: fix whole second dates ## v0.99 - 2014-06-26 * Fix --dry-run not working * Make compatible with go 1.1 ## v0.98 - 2014-05-30 * s3: Treat missing Content-Length as 0 for some ceph installations * rclonetest: add file with a space in ## v0.97 - 2014-05-05 * Implement copying of single files * s3 & swift: support paths inside containers/buckets ## v0.96 - 2014-04-24 * drive: Fix multiple files of same name being created * drive: Use o.Update and fs.Put to optimise transfers * Add version number, -V and --version ## v0.95 - 2014-03-28 * rclone.org: website, docs and graphics * drive: fix path parsing ## v0.94 - 2014-03-27 * Change remote format one last time * GNU style flags ## v0.93 - 2014-03-16 * drive: store token in config file * cross compile other versions * set strict permissions on config file ## v0.92 - 2014-03-15 * Config fixes and --config option ## v0.91 - 2014-03-15 * Make config file ## v0.90 - 2013-06-27 * Project named rclone ## v0.00 - 2012-11-18 * Project started