Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon s3 如何将上传的文件传递到AmazonS3?_Amazon S3_Flask - Fatal编程技术网

Amazon s3 如何将上传的文件传递到AmazonS3?

Amazon s3 如何将上传的文件传递到AmazonS3?,amazon-s3,flask,Amazon S3,Flask,我的代码中有: 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=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处理文件上载,调整大小,然后将其上载到AmazonS3。但是现在它挂在
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

显然,这三个论点中有一个有问题,但我不确定是哪一个?我也不确定我是否正确处理了该文件。我是否需要保存图像,然后重新打开以将其上载到AmazonS3?之所以这样做,是因为所有tinys3示例都是这样做的,但我的文件已打开,因此可能是多余的?

看起来您的图像参数可能混淆了。这是我们想要的签名:

conn.upload(key, local_file, bucket)
tinys3和一个打开的类似文件的对象,用于本地_文件。请尝试以下操作:

conn.upload("test.png", f, "snappie.watermarks")