README

rclone logo

Website | Documentation | Download | Contributing | Changelog | Installation | Forum

Build Status Go Report Card GoDoc Docker Pulls

Rclone

Rclone ("rsync for cloud storage") is a command line program to sync files and directories to and from different cloud storage providers.

Storage providers

Please see the full list of all storage providers and their features

Features

  • MD5/SHA-1 hashes checked at all times for file integrity
  • Timestamps preserved on files
  • Partial syncs supported on a whole file basis
  • Copy mode to just copy new/changed files
  • Sync (one way) mode to make a directory identical
  • Check mode to check for file hash equality
  • Can sync to and from network, e.g. two different cloud accounts
  • Optional large file chunking (Chunker)
  • Optional transparent compression (Compress)
  • Optional encryption (Crypt)
  • Optional cache (Cache)
  • Optional FUSE mount (rclone mount)
  • Multi-threaded downloads to local disk
  • Can serve local or remote files over HTTP/WebDav/FTP/SFTP/dlna

Installation & documentation

Please see the rclone website for:

Downloads

License

This is free software under the terms of MIT the license (check the COPYING file included in this package).

Expand β–Ύ Collapse β–΄

Documentation

Overview ΒΆ

    Sync files and directories to and from local and remote object stores

    Nick Craig-Wood <nick@craig-wood.com>

    Source Files

    Directories

    Path Synopsis
    backend
    all
    amazonclouddrive
    Package amazonclouddrive provides an interface to the Amazon Cloud Drive object storage system.
    Package amazonclouddrive provides an interface to the Amazon Cloud Drive object storage system.
    b2
    Package b2 provides an interface to the Backblaze B2 object storage system
    Package b2 provides an interface to the Backblaze B2 object storage system
    box
    Package box provides an interface to the Box object storage system.
    Package box provides an interface to the Box object storage system.
    box/api
    Package api has type definitions for box Converted from the API docs with help from https://mholt.github.io/json-to-go/
    Package api has type definitions for box Converted from the API docs with help from https://mholt.github.io/json-to-go/
    chunker
    Package chunker provides wrappers for Fs and Object which split large files in chunks
    Package chunker provides wrappers for Fs and Object which split large files in chunks
    compress
    Package compress provides wrappers for Fs and Object which implement compression.
    Package compress provides wrappers for Fs and Object which implement compression.
    crypt
    Package crypt provides wrappers for Fs and Object which implement encryption
    Package crypt provides wrappers for Fs and Object which implement encryption
    crypt/pkcs7
    Package pkcs7 implements PKCS#7 padding This is a standard way of encoding variable length buffers into buffers which are a multiple of an underlying crypto block size.
    Package pkcs7 implements PKCS#7 padding This is a standard way of encoding variable length buffers into buffers which are a multiple of an underlying crypto block size.
    drive
    Package drive interfaces with the Google Drive object storage system
    Package drive interfaces with the Google Drive object storage system
    dropbox
    Package dropbox provides an interface to Dropbox object storage
    Package dropbox provides an interface to Dropbox object storage
    dropbox/dbhash
    Package dbhash implements the dropbox hash as described in https://www.dropbox.com/developers/reference/content-hash
    Package dbhash implements the dropbox hash as described in https://www.dropbox.com/developers/reference/content-hash
    filefabric
    Package filefabric provides an interface to Storage Made Easy's Enterprise File Fabric storage system.
    Package filefabric provides an interface to Storage Made Easy's Enterprise File Fabric storage system.
    filefabric/api
    Package api has type definitions for filefabric Converted from the API responses with help from https://mholt.github.io/json-to-go/
    Package api has type definitions for filefabric Converted from the API responses with help from https://mholt.github.io/json-to-go/
    ftp
    Package ftp interfaces with FTP servers
    Package ftp interfaces with FTP servers
    googlecloudstorage
    Package googlecloudstorage provides an interface to Google Cloud Storage
    Package googlecloudstorage provides an interface to Google Cloud Storage
    googlephotos
    Package googlephotos provides an interface to Google Photos
    Package googlephotos provides an interface to Google Photos
    http
    Package http provides a filesystem interface using golang.org/net/http It treats HTML pages served from the endpoint as directory listings, and includes any links found as files.
    Package http provides a filesystem interface using golang.org/net/http It treats HTML pages served from the endpoint as directory listings, and includes any links found as files.
    hubic
    Package hubic provides an interface to the Hubic object storage system.
    Package hubic provides an interface to the Hubic object storage system.
    local
    Package local provides a filesystem interface
    Package local provides a filesystem interface
    mailru/mrhash
    Package mrhash implements the mailru hash, which is a modified SHA1.
    Package mrhash implements the mailru hash, which is a modified SHA1.
    mega
    Package mega provides an interface to the Mega object storage system.
    Package mega provides an interface to the Mega object storage system.
    memory
    Package memory provides an interface to an in memory object storage system
    Package memory provides an interface to an in memory object storage system
    onedrive
    Package onedrive provides an interface to the Microsoft OneDrive object storage system.
    Package onedrive provides an interface to the Microsoft OneDrive object storage system.
    onedrive/quickxorhash
    Package quickxorhash provides the quickXorHash algorithm which is a quick, simple non-cryptographic hash algorithm that works by XORing the bytes in a circular-shifting fashion.
    Package quickxorhash provides the quickXorHash algorithm which is a quick, simple non-cryptographic hash algorithm that works by XORing the bytes in a circular-shifting fashion.
    pcloud
    Package pcloud provides an interface to the Pcloud object storage system.
    Package pcloud provides an interface to the Pcloud object storage system.
    pcloud/api
    Package api has type definitions for pcloud Converted from the API docs with help from https://mholt.github.io/json-to-go/
    Package api has type definitions for pcloud Converted from the API docs with help from https://mholt.github.io/json-to-go/
    premiumizeme
    Package premiumizeme provides an interface to the premiumize.me object storage system.
    Package premiumizeme provides an interface to the premiumize.me object storage system.
    premiumizeme/api
    Package api contains definitions for using the premiumize.me API
    Package api contains definitions for using the premiumize.me API
    s3
    Package s3 provides an interface to Amazon S3 oject storage
    Package s3 provides an interface to Amazon S3 oject storage
    sharefile
    Package sharefile provides an interface to the Citrix Sharefile object storage system.
    Package sharefile provides an interface to the Citrix Sharefile object storage system.
    sharefile/api
    Package api contains definitions for using the premiumize.me API
    Package api contains definitions for using the premiumize.me API
    sugarsync
    Package sugarsync provides an interface to the Sugarsync object storage system.
    Package sugarsync provides an interface to the Sugarsync object storage system.
    sugarsync/api
    Package api has type definitions for sugarsync Converted from the API docs with help from https://www.onlinetool.io/xmltogo/
    Package api has type definitions for sugarsync Converted from the API docs with help from https://www.onlinetool.io/xmltogo/
    swift
    Package swift provides an interface to the Swift object storage system
    Package swift provides an interface to the Swift object storage system
    tardigrade
    Package tardigrade provides an interface to Tardigrade decentralized object storage.
    Package tardigrade provides an interface to Tardigrade decentralized object storage.
    webdav
    Package webdav provides an interface to the Webdav object storage system.
    Package webdav provides an interface to the Webdav object storage system.
    webdav/api
    Package api has type definitions for webdav
    Package api has type definitions for webdav
    webdav/odrvcookie
    Package odrvcookie can fetch authentication cookies for a sharepoint webdav endpoint
    Package odrvcookie can fetch authentication cookies for a sharepoint webdav endpoint
    zoho
    Package zoho provides an interface to the Zoho Workdrive storage system.
    Package zoho provides an interface to the Zoho Workdrive storage system.
    This shows the commits not yet in the stable branch
    This shows the commits not yet in the stable branch
    cmd
    Package cmd implements the rclone command It is in a sub package so it's internals can be re-used elsewhere
    Package cmd implements the rclone command It is in a sub package so it's internals can be re-used elsewhere
    all
    Package all imports all the commands
    Package all imports all the commands
    cat
    ls
    lsd
    lsf
    lsl
    ncdu/scan
    Package scan does concurrent scanning of an Fs building up a directory tree.
    Package scan does concurrent scanning of an Fs building up a directory tree.
    rc
    rcd
    serve/httplib
    Package httplib provides common functionality for http servers
    Package httplib provides common functionality for http servers
    serve/httplib/serve
    Package serve deals with serving objects over HTTP
    Package serve deals with serving objects over HTTP
    serve/proxy
    Package proxy implements a programmable proxy for rclone serve
    Package proxy implements a programmable proxy for rclone serve
    serve/proxy/proxyflags
    Package proxyflags implements command line flags to set up a proxy
    Package proxyflags implements command line flags to set up a proxy
    serve/restic
    Package restic serves a remote suitable for use with restic
    Package restic serves a remote suitable for use with restic
    serve/servetest
    Package servetest provides infrastructure for running loopback tests of "rclone serve backend:" against the backend integration tests.
    Package servetest provides infrastructure for running loopback tests of "rclone serve backend:" against the backend integration tests.
    serve/webdav
    Package webdav implements a WebDAV server backed by rclone VFS
    Package webdav implements a WebDAV server backed by rclone VFS
    fs
    Package fs is a generic file system interface for rclone object storage systems
    Package fs is a generic file system interface for rclone object storage systems
    accounting
    Package accounting providers an accounting and limiting reader
    Package accounting providers an accounting and limiting reader
    asyncreader
    Package asyncreader provides an asynchronous reader which reads independently of write
    Package asyncreader provides an asynchronous reader which reads independently of write
    cache
    Package cache implements the Fs cache
    Package cache implements the Fs cache
    config
    Package config reads, writes and edits the config file and deals with command line flags
    Package config reads, writes and edits the config file and deals with command line flags
    config/configflags
    Package configflags defines the flags used by rclone.
    Package configflags defines the flags used by rclone.
    config/configmap
    Package configmap provides an abstraction for reading and writing config
    Package configmap provides an abstraction for reading and writing config
    config/configstruct
    Package configstruct parses unstructured maps into structures
    Package configstruct parses unstructured maps into structures
    config/flags
    Package flags contains enhanced versions of spf13/pflag flag routines which will read from the environment also.
    Package flags contains enhanced versions of spf13/pflag flag routines which will read from the environment also.
    config/obscure
    Package obscure contains the Obscure and Reveal commands
    Package obscure contains the Obscure and Reveal commands
    dirtree
    Package dirtree contains the DirTree type which is used for building filesystem heirachies in memory.
    Package dirtree contains the DirTree type which is used for building filesystem heirachies in memory.
    filter
    Package filter controls the filtering of files
    Package filter controls the filtering of files
    filter/filterflags
    Package filterflags implements command line flags to set up a filter
    Package filterflags implements command line flags to set up a filter
    fserrors
    Package fserrors provides errors and error handling
    Package fserrors provides errors and error handling
    fshttp
    Package fshttp contains the common http parts of the config, Transport and Client
    Package fshttp contains the common http parts of the config, Transport and Client
    fspath
    Package fspath contains routines for fspath manipulation
    Package fspath contains routines for fspath manipulation
    list
    Package list contains list functions
    Package list contains list functions
    log
    Package log provides logging for rclone
    Package log provides logging for rclone
    log/logflags
    Package logflags implements command line flags to set up the log
    Package logflags implements command line flags to set up the log
    march
    Package march traverses two directories in lock step
    Package march traverses two directories in lock step
    object
    Package object defines some useful Objects
    Package object defines some useful Objects
    operations
    Package operations does generic operations on filesystems and objects
    Package operations does generic operations on filesystems and objects
    rc
    Package rc implements a remote control server and registry for rclone To register your internal calls, call rc.Add(path, function).
    Package rc implements a remote control server and registry for rclone To register your internal calls, call rc.Add(path, function).
    rc/rcflags
    Package rcflags implements command line flags to set up the remote control
    Package rcflags implements command line flags to set up the remote control
    rc/rcserver
    Package rcserver implements the HTTP endpoint to serve the remote control
    Package rcserver implements the HTTP endpoint to serve the remote control
    sync
    Package sync is the implementation of sync/copy/move
    Package sync is the implementation of sync/copy/move
    walk
    Package walk walks directories
    Package walk walks directories
    Package fstest provides utilities for testing the Fs
    Package fstest provides utilities for testing the Fs
    fstests
    Package fstests provides generic integration tests for the Fs and Object interfaces.
    Package fstests provides generic integration tests for the Fs and Object interfaces.
    mockdir
    Package mockdir makes a mock fs.Directory object
    Package mockdir makes a mock fs.Directory object
    mockobject
    Package mockobject provides a mock object which can be created from a string
    Package mockobject provides a mock object which can be created from a string
    test_all
    Run tests for all the remotes.
    Run tests for all the remotes.
    testserver
    Package testserver starts and stops test servers if required
    Package testserver starts and stops test servers if required
    testy
    Package testy contains test utilities for rclone
    Package testy contains test utilities for rclone
    lib
    atexit
    Package atexit provides handling for functions you want called when the program exits unexpectedly due to a signal.
    Package atexit provides handling for functions you want called when the program exits unexpectedly due to a signal.
    bucket
    Package bucket is contains utilities for managing bucket based backends
    Package bucket is contains utilities for managing bucket based backends
    cache
    Package cache implements a simple cache where the entries are expired after a given time (5 minutes of disuse by default).
    Package cache implements a simple cache where the entries are expired after a given time (5 minutes of disuse by default).
    dircache
    Package dircache provides a simple cache for caching directory ID to path lookups and the inverse.
    Package dircache provides a simple cache for caching directory ID to path lookups and the inverse.
    env
    Package env contains functions for dealing with environment variables
    Package env contains functions for dealing with environment variables
    file
    Package file provides a version of os.OpenFile, the handles of which can be renamed and deleted under Windows.
    Package file provides a version of os.OpenFile, the handles of which can be renamed and deleted under Windows.
    israce
    Package israce reports if the Go race detector is enabled.
    Package israce reports if the Go race detector is enabled.
    pacer
    Package pacer makes pacing and retrying API calls easy
    Package pacer makes pacing and retrying API calls easy
    plugin
    Package plugin implements loading out-of-tree storage backends using https://golang.org/pkg/plugin/ on Linux and macOS.
    Package plugin implements loading out-of-tree storage backends using https://golang.org/pkg/plugin/ on Linux and macOS.
    pool
    Package pool implements a memory pool similar in concept to sync.Pool but with more determinism.
    Package pool implements a memory pool similar in concept to sync.Pool but with more determinism.
    random
    Package random holds a few functions for working with random numbers
    Package random holds a few functions for working with random numbers
    ranges
    Package ranges provides the Ranges type for keeping track of byte ranges which may or may not be present in an object.
    Package ranges provides the Ranges type for keeping track of byte ranges which may or may not be present in an object.
    rest
    Package rest implements a simple REST wrapper All methods are safe for concurrent calling.
    Package rest implements a simple REST wrapper All methods are safe for concurrent calling.
    structs
    Package structs is for manipulating structures with reflection
    Package structs is for manipulating structures with reflection
    terminal
    Package terminal provides VT100 terminal codes and a windows implementation of that.
    Package terminal provides VT100 terminal codes and a windows implementation of that.
    vfs
    test_vfs
    Test the VFS to exhaustion, specifically looking for deadlocks Run on a mounted filesystem
    Test the VFS to exhaustion, specifically looking for deadlocks Run on a mounted filesystem
    vfscache
    Package vfscache deals with caching of files locally for the VFS layer
    Package vfscache deals with caching of files locally for the VFS layer
    vfscache/writeback
    Package writeback keeps track of the files which need to be written back to storage
    Package writeback keeps track of the files which need to be written back to storage
    vfsflags
    Package vfsflags implements command line flags to set up a vfs
    Package vfsflags implements command line flags to set up a vfs