We are using Python scripts to store files on Amazon S3 using the [url removed, login to view] library provided by Amazon. We need some modifications to a script that is intended to synchronize files between a local directory and an Amazon bucket.
Our code is currently located at [url removed, login to view]
Currently the script successfully puts single files to S3. The modifications we need are as follows:
1) Upload all the files in a directory (specified by a command-line parameter) to S3.
2) If the user specifies they want files uploaded recursively (via a command-line parameter), recurse through subdirectories (applying the appropriate key to the uploaded files).
3) By default, don't upload a file if it already exists on S3. Provide a command-line parameter that enables the user to override this behavior, overwriting files that already exist on S3.
4) Provide command-line parameters that tell the script to only upload files that were created after a certain date or after a certain time period. There should be two ways of specifying this: one is to say "upload all files created after June 5, 2008" and another is "upload all files that were created in the last 7 days". These parameters must take into account the other parameters pertaining to recursion and overwriting.
It is OK (preferable, really) to modify Amazon's [url removed, login to view] library as part of this task. It looks like one method of the [url removed, login to view] library that's missing is the ability to easily determine whether a given file already exists on S3 or not, so you'll probably have to add at least that functionality.
**Note:** To take this job, you will need to have your own Amazon S3 account and your own developer keys (you won't be able to use our developer keys because there's no way for us to control/remove access to our keys once the job is done).