Python 休息 API 处理图像的基本管道

Basic Pipeline for Python Rest API to handle images

我正在研究如何通过休息接受图像 api。如果我的 api 做了这样的事情:

def post(self):
    sent_file = next(request.files.values())
    sent_file.seek(0)
    file_data = sent_file.stream.read()

    import boto
    from boto.s3.key import Key
    ....
    k = Key(bucket)
    k.set_contents_from_string(file_data)
    k.make_public()

我发送的请求是:

rv = s.put('.../fileupload', files={'test.jpg': open('test.jpg', 'rb')})

这可行,但我知道有更清洁的解决方案。如何发送文件以便我可以上传文件本身而不是生成数据字符串并上传?另外,有没有简单的方法来确保文件是图像?

首先,我建议使用 postman 来测试 RestFUL API。 你得到一个字符串,因为你用 put 打开文件 强制产生字节流 您可以使用带有 post 的表单数据上传文件。 不幸的是,HTTP 无法类型检查文件扩展名或文件类型。最好在客户端或服务器上检查。