Decode URLs properly before passing file path to S3

File names with spaces (and other special chars) were passed to S3 in urlencoded form, which it doesn't support, causing "file not found" errors. This fixes it.