Add S3 bucket utilities

Utilities for uploading files to S3 buckets. Part of #868.
Wouldn't the following be a little more readable here?
```python
        if defaults is None:
            defaults = { ... }
```