Todo * FIXME: More -dry-run checks for object transfer * Might be quicker to check md5sums first? for swift <-> swift certainly, and maybe for small files * swift: Ignoring the pseudo directories * if object.PseudoDirectory { * fmt.Printf("%9s %19s %s\n", "Directory", "-", fs.Remote()) * 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 logging controllable with flags (mostly done) * -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 * tie into -max-size flag * FIXME Make NewFs to return err.IsAnObject so can put the LimitedFs creation in common code? Or try for as much as possible? * FIXME Account all the transactons (ls etc) using a different 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? Ideas * could do encryption - put IV into metadata? * optimise remote copy container to another container using remote copy if local is same as remote - use an optional Copier interface * support * sftp * scp * rsync over ssh * control times sync (which is slow with some remotes) with -a --archive flag? * 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 * 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 Making a release * make test * make tag * edit README.md * git commit fs/version.go README.md docs/content/downloads.md * make retag * . ~/bin/go-cross * make cross * make upload * make upload_website * git push --tags origin master