Update docs - fixes #32

This commit is contained in:
Nick Craig-Wood 2015-02-28 13:08:18 +00:00
parent 24a6ff54c2
commit a5974999eb
4 changed files with 55 additions and 53 deletions

View File

@ -82,21 +82,26 @@ MD5SUM. Doesn't delete files from the destination.
Sync the source to the destination. Doesn't transfer Sync the source to the destination. Doesn't transfer
unchanged files, testing first by modification time then by unchanged files, testing first by modification time then by
MD5SUM. Deletes any files that exist in source that don't size. Deletes any files that exist in source that don't
exist in destination. Since this can cause data loss, test exist in destination. Since this can cause data loss, test
first with the `--dry-run` flag. first with the `--dry-run` flag.
rclone ls [remote:path] rclone ls [remote:path]
List all the objects in the the path with sizes. List all the objects in the the path with size and path.
rclone lsl [remote:path]
List all the objects in the the path with sizes and timestamps.
rclone lsd [remote:path] rclone lsd [remote:path]
List all directories/objects/buckets in the the path. List all directories/containers/buckets in the the path.
rclone lsl [remote:path]
List all the objects in the the path with modification time, size and path.
rclone md5sum [remote:path]
Produces an md5sum file for all the objects in the path. This
is in the same format as the standard md5sum tool produces.
rclone mkdir remote:path rclone mkdir remote:path
@ -117,10 +122,13 @@ Checks the files in the source and destination match. It
compares sizes and MD5SUMs and prints a report of files which compares sizes and MD5SUMs and prints a report of files which
don't match. It doesn't alter the source or destination. don't match. It doesn't alter the source or destination.
rclone md5sum remote:path rclone config
Produces an md5sum file for all the objects in the path. This is in Enter an interactive configuration session.
the same format as the standard md5sum tool produces.
rclone help
This help.
General options: General options:

View File

@ -65,21 +65,26 @@ MD5SUM. Doesn't delete files from the destination.
Sync the source to the destination. Doesn't transfer Sync the source to the destination. Doesn't transfer
unchanged files, testing first by modification time then by unchanged files, testing first by modification time then by
MD5SUM. Deletes any files that exist in source that don't size. Deletes any files that exist in source that don't
exist in destination. Since this can cause data loss, test exist in destination. Since this can cause data loss, test
first with the -dry-run flag. first with the `--dry-run` flag.
rclone ls [remote:path] rclone ls [remote:path]
List all the objects in the the path with sizes. List all the objects in the the path with size and path.
rclone lsl [remote:path]
List all the objects in the the path with sizes and timestamps.
rclone lsd [remote:path] rclone lsd [remote:path]
List all directories/objects/buckets in the the path. List all directories/containers/buckets in the the path.
rclone lsl [remote:path]
List all the objects in the the path with modification time, size and path.
rclone md5sum [remote:path]
Produces an md5sum file for all the objects in the path. This
is in the same format as the standard md5sum tool produces.
rclone mkdir remote:path rclone mkdir remote:path
@ -100,11 +105,13 @@ Checks the files in the source and destination match. It
compares sizes and MD5SUMs and prints a report of files which compares sizes and MD5SUMs and prints a report of files which
don't match. It doesn't alter the source or destination. don't match. It doesn't alter the source or destination.
rclone md5sum remote:path rclone config
Produces an md5sum file for all the objects in the path. This is in Enter an interactive configuration session.
the same format as the standard md5sum tool produces.
General options: rclone help
This help.
``` ```
--bwlimit=0: Bandwidth limit in kBytes/s, or use suffix K|M|G --bwlimit=0: Bandwidth limit in kBytes/s, or use suffix K|M|G

View File

@ -19,30 +19,23 @@ Todo
* if object.PseudoDirectory { * if object.PseudoDirectory {
* fmt.Printf("%9s %19s %s\n", "Directory", "-", fs.Remote()) * fmt.Printf("%9s %19s %s\n", "Directory", "-", fs.Remote())
* Make Account wrapper * Make Account wrapper
* limit bandwidth for a pool of all individual connectinos
* do timeouts by setting a limit, seeing whether io has happened
and resetting it if it has
* make Account do progress meter * make Account do progress meter
* Make logging controllable with flags (mostly done)
* -timeout: Make all timeouts be settable with command line parameters * -timeout: Make all timeouts be settable with command line parameters
* Windows paths? Do we need to translate / and \?
* Make a fs.Errorf and count errors and log them at a different level
* Add max object size to fs metadata - 5GB for swift, infinite for local, ? for s3 * Add max object size to fs metadata - 5GB for swift, infinite for local, ? for s3
* tie into -max-size flag * tie into -max-size flag
* FIXME Make NewFs to return err.IsAnObject so can put the LimitedFs * FIXME Make NewFs to return err.IsAnObject so can put the LimitedFs
creation in common code? Or try for as much as possible? creation in common code? Or try for as much as possible?
* FIXME Account all the transactons (ls etc) using a different * FIXME Account all the transactons (ls etc) using a different
Roundtripper wrapper which wraps the transactions? Roundtripper wrapper which wraps the transactions?
* FIXME write tests for local file system
* FIXME implement tests for single file operations in rclonetest
* Need to make directory objects otherwise can't upload an empty directory
* Or could upload empty directories only?
More rsync features More rsync features
* include * include
* exclude * exclude
* max size * max size
* bandwidth limit * -c, --checksum skip based on checksum, not mod-time & size
Ideas for flags
* --retries N flag which would make rclone retry a sync until successful or it tried N times.
Ideas Ideas
* could do encryption - put IV into metadata? * could do encryption - put IV into metadata?
@ -55,13 +48,6 @@ Ideas
* control times sync (which is slow with some remotes) with -a --archive flag? * control times sync (which is slow with some remotes) with -a --archive flag?
* Copy a glob pattern - could do with LimitedFs * Copy a glob pattern - could do with LimitedFs
s3
* Can maybe set last modified?
* https://forums.aws.amazon.com/message.jspa?messageID=214062
* Otherwise can set metadata
* Returns etag and last modified in bucket list
Bugs Bugs
* Non verbose - not sure number transferred got counted up? CHECK * Non verbose - not sure number transferred got counted up? CHECK
* When doing copy it recurses the whole of the destination FS which isn't necessary * When doing copy it recurses the whole of the destination FS which isn't necessary

View File

@ -59,11 +59,11 @@ func (cmd *Command) checkArgs(args []string) {
var Commands = []Command{ var Commands = []Command{
{ {
Name: "copy", Name: "copy",
ArgsHelp: "source://path dest://path", ArgsHelp: "source:path dest:path",
Help: ` Help: `
Copy the source to the destination. Doesn't transfer Copy the source to the destination. Doesn't transfer
unchanged files, testing first by modification time then by unchanged files, testing first by modification time then by
MD5SUM. Doesn't delete files from the destination.`, size. Doesn't delete files from the destination.`,
Run: func(fdst, fsrc fs.Fs) { Run: func(fdst, fsrc fs.Fs) {
err := fs.Sync(fdst, fsrc, false) err := fs.Sync(fdst, fsrc, false)
if err != nil { if err != nil {
@ -75,11 +75,11 @@ var Commands = []Command{
}, },
{ {
Name: "sync", Name: "sync",
ArgsHelp: "source://path dest://path", ArgsHelp: "source:path dest:path",
Help: ` Help: `
Sync the source to the destination. Doesn't transfer Sync the source to the destination. Doesn't transfer
unchanged files, testing first by modification time then by unchanged files, testing first by modification time then by
MD5SUM. Deletes any files that exist in source that don't size. Deletes any files that exist in source that don't
exist in destination. Since this can cause data loss, test exist in destination. Since this can cause data loss, test
first with the --dry-run flag.`, first with the --dry-run flag.`,
Run: func(fdst, fsrc fs.Fs) { Run: func(fdst, fsrc fs.Fs) {
@ -93,7 +93,7 @@ var Commands = []Command{
}, },
{ {
Name: "ls", Name: "ls",
ArgsHelp: "[remote://path]", ArgsHelp: "[remote:path]",
Help: ` Help: `
List all the objects in the the path with size and path.`, List all the objects in the the path with size and path.`,
Run: func(fdst, fsrc fs.Fs) { Run: func(fdst, fsrc fs.Fs) {
@ -107,7 +107,7 @@ var Commands = []Command{
}, },
{ {
Name: "lsd", Name: "lsd",
ArgsHelp: "[remote://path]", ArgsHelp: "[remote:path]",
Help: ` Help: `
List all directories/containers/buckets in the the path.`, List all directories/containers/buckets in the the path.`,
Run: func(fdst, fsrc fs.Fs) { Run: func(fdst, fsrc fs.Fs) {
@ -121,7 +121,7 @@ var Commands = []Command{
}, },
{ {
Name: "lsl", Name: "lsl",
ArgsHelp: "[remote://path]", ArgsHelp: "[remote:path]",
Help: ` Help: `
List all the objects in the the path with modification time, size and path.`, List all the objects in the the path with modification time, size and path.`,
Run: func(fdst, fsrc fs.Fs) { Run: func(fdst, fsrc fs.Fs) {
@ -135,9 +135,10 @@ var Commands = []Command{
}, },
{ {
Name: "md5sum", Name: "md5sum",
ArgsHelp: "[remote://path]", ArgsHelp: "[remote:path]",
Help: ` Help: `
Produces an md5sum file for all the objects in the path.`, Produces an md5sum file for all the objects in the path. This
is in the same format as the standard md5sum tool produces.`,
Run: func(fdst, fsrc fs.Fs) { Run: func(fdst, fsrc fs.Fs) {
err := fs.Md5sum(fdst, os.Stdout) err := fs.Md5sum(fdst, os.Stdout)
if err != nil { if err != nil {
@ -149,7 +150,7 @@ var Commands = []Command{
}, },
{ {
Name: "mkdir", Name: "mkdir",
ArgsHelp: "remote://path", ArgsHelp: "remote:path",
Help: ` Help: `
Make the path if it doesn't already exist`, Make the path if it doesn't already exist`,
Run: func(fdst, fsrc fs.Fs) { Run: func(fdst, fsrc fs.Fs) {
@ -163,7 +164,7 @@ var Commands = []Command{
}, },
{ {
Name: "rmdir", Name: "rmdir",
ArgsHelp: "remote://path", ArgsHelp: "remote:path",
Help: ` Help: `
Remove the path. Note that you can't remove a path with Remove the path. Note that you can't remove a path with
objects in it, use purge for that.`, objects in it, use purge for that.`,
@ -178,7 +179,7 @@ var Commands = []Command{
}, },
{ {
Name: "purge", Name: "purge",
ArgsHelp: "remote://path", ArgsHelp: "remote:path",
Help: ` Help: `
Remove the path and all of its contents.`, Remove the path and all of its contents.`,
Run: func(fdst, fsrc fs.Fs) { Run: func(fdst, fsrc fs.Fs) {
@ -192,7 +193,7 @@ var Commands = []Command{
}, },
{ {
Name: "check", Name: "check",
ArgsHelp: "source://path dest://path", ArgsHelp: "source:path dest:path",
Help: ` Help: `
Checks the files in the source and destination match. It Checks the files in the source and destination match. It
compares sizes and MD5SUMs and prints a report of files which compares sizes and MD5SUMs and prints a report of files which