у меня есть это в моем коде:Как передать загруженный файл на amazon s3?
size=128,128
@app.route('/',methods=['GET','POST'])
def upload():
print request.method
if request.method == 'POST':
file = request.files['image']
im = Image.open(file)
im.resize(size)
im.save("test.png","PNG")
f=open("test.png",'r')
conn = tinys3.Connection('AKIAI2GPQ','fAQxDLbvZcqhXvjd',tls=True)
conn.upload(im,f,"snappie.watermarks")
print "got file"
return redirect("https://www.google.com")
return render_template('index.html')
надеюсь, вы можете видеть, что я пытаюсь обрабатывать загрузку файлов из request.files, изменить его размер, а затем загрузить, что амазонки s3. Однако сейчас его повесили на линии conn.upload(im,f,"snappie.watermarks")
.
Это ошибка:
File "/home/alex/snappie/web/server.py", line 25, in upload
conn.upload(im,f,"snappie.watermarks")
File "/usr/local/lib/python2.7/dist-packages/tinys3/connection.py", line 152, in upload
return self.run(r)
File "/usr/local/lib/python2.7/dist-packages/tinys3/connection.py", line 233, in run
return self._handle_request(request)
File "/usr/local/lib/python2.7/dist-packages/tinys3/connection.py", line 255, in _handle_request
return request.run()
File "/usr/local/lib/python2.7/dist-packages/tinys3/request_factory.py", line 147, in run
headers['Content-Type'] = self.content_type or mimetypes.guess_type(self.key)[0] or 'application/octet-stream'
File "/usr/lib/python2.7/mimetypes.py", line 298, in guess_type
return _db.guess_type(url, strict)
File "/usr/lib/python2.7/mimetypes.py", line 114, in guess_type
scheme, url = urllib.splittype(url)
File "/usr/lib/python2.7/urllib.py", line 1074, in splittype
match = _typeprog.match(url)
TypeError: expected string or buffer
Видимо его возникли проблемы с одним из этих 3-х аргументов, но я не уверен, какой из них? Я также не уверен, что правильно обрабатываю файл. Мне нужно сохранить изображение, а затем снова открыть его, чтобы загрузить его на amazon s3? Я делаю это, потому что все примеры tinys3 делают это, но мой файл уже открыт, возможно, его избыток?