TODO list for s3cmd project =========================== - For 0.9.9.x - Make 'sync s3://bkt/some-filename local/other-filename' work (at the moment it'll always download). - Enable --exclude for [ls]. - Allow change /tmp to somewhere else - With --guess-mime use 'magic' module if available. - Support --preserve for [put] and [get]. Update manpage. - Don't let --continue fail if the file is already fully downloaded. - Option --mime-type should set mime type with 'cp' and 'mv'. If possible --guess-mime-type should do as well. - Skip files that disapper during upload. Now it fails. - Make upload throttling configurable. - For 1.0.0 - Add 'geturl' command, both Unicode and urlencoded output. - Add a command for generating "Query String Authentication" URLs. - Add a command for setting up access logging. - After 1.0.0 - Speed up upload / download with multiple threads. - Sync should be able to update metadata (UID, timstamps, etc) if only these change (i.e. same content, different metainfo). - Sync must backup non-files as well. At least directories, symlinks and device nodes. - If GPG fails error() and exit. If un-GPG fails save the file with .gpg extension. - Keep backup files remotely on put/sync-to if requested (move the old 'object' to e.g. 'object~' and only then upload the new one). Could be more advanced to keep, say, last 5 copies, etc. - Memory consumption on very large upload sets is terribly high. - Implement per-bucket (or per-regexp?) default settings. For example regarding ACLs, encryption, etc. - Implement GPG for sync (it's not that easy since it won't be easy to compare the encrypted-remote-object size with local file. either we can store the metadata in a dedicated file where we face a risk of inconsistencies, or we'll store the metadata encrypted in each object header where we'll have to do large number for object/HEAD requests. tough call). Or we can only compare local timestamps with remote object timestamps. If the local one is older we'll *assume* it hasn't been changed. - Keep man page up to date and write some more documentation - Yeah, right ;-)