Мне кажется, что в примере кода, который сохраняет загруженный файл во временный файл, вы просто замените file.save(os.path.join(app.config['UPLOAD_FOLDER'], filename))
кодом, который загружает файл на S3.
Например, со связанной страницы:
def upload_file():
if request.method == 'POST':
file = request.files['file']
if file and allowed_file(file.filename):
filename = secure_filename(file.filename)
s3 = boto.connect_s3()
bucket = s3.create_bucket('my_bucket')
key = bucket.new_key(filename)
key.set_contents_from_file(file, headers=None, replace=True, cb=None, num_cb=10, policy=None, md5=None)
return 'successful upload'
return ..
Или, если вы хотите загрузить на S3 асинхронно, вы можете использовать любой механизм организации очередей, предоставляемый Heroku.