Todo * Copy should use the sync code as it is more efficient at directory listing * Drive needs a modify window of 1ms * Factor fses into own packages * FIXME: ls without an argument for buckets/containers? * FIXME: More -dry-run checks for object transfer * Might be quicker to check md5sums first? for swift <-> swift certainly, and maybe for small files * 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 * Check the locking in swift module! * Windows paths? Do we need to translate / and \? * Make a fs.Errorf and count errors and log them at a different level * add -modify-window flag - fs should keep knowledge of resolution * Add max object size to fs metadata - 5GB for swift, infinite for local, ? for s3 Drive * Do we need the secrets or just the code? If just the code then can make a web service which does the request on the clients behalf so don't need to expose the client secrets * Apparently we don't need -drive-client-id or -drive-client-secret once we have a token * Make a cgi which we send the user to * It has the client secrets * It gets google to authenticate * It receives the token back * It displays the token to the user to paste in to the code * Should be https really Ideas * could do encryption - put IV into metadata? * optimise remote copy container to another container using remote copy if local is same as remote * Allow subpaths container:/sub/path * look at auth from env in s3 module - add to swift? * support * sftp * scp * Google cloud storage: https://developers.google.com/storage/ * Google drive: https://developers.google.com/drive/ * rsync over ssh * dropbox: https://github.com/nickoneill/go-dropbox (no MD5s) Need to make directory objects otherwise can't upload an empty directory * Or could upload empty directories only? * Can't purge a local filesystem because it leaves the directories behind 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