This is the code that handles the uploading request:
@app.route('/upload', methods=['POST'])
def upload():
if request.method == 'POST':
test = request
data_file = request.files.get('file')
file_name = data_file.filename
conn = S3Connection(settings.ACCESS_KEY, settings.SECRET_KEY)
bucket = conn.get_bucket(settings.BUCKET_NAME)
k = Key(bucket)
k.key = 'file_test.jpg'
# k.set_contents_from_file(data_file)
k.set_contents_from_string(data_file.readlines())
# return jsonify(name=file_name)
return jsonify(name=file_name)
I've tried 3 options:
k.set_contents_from_string(data_file.readlines())
k.set_contents_from_file(data_file)
k.set_contents_from_stream(data_file.readlines())
So what is the right way to upload files to amazon s3?
Here is a fully-functioning example of how to upload multiple files to Amazon S3 using an HTML file input tag, Python, Flask and Boto.'
The main keys to making this work are Flask's request.files.getlist
and Boto's set_contents_from_string
.
Some tips:
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With