2

Dropbox 有一个 REST API,允许使用以下 URL 上传文件。(参考

https://api-content.dropbox.com/1/files_put/<root>/<path>?param=val

我想使用 Flask-RESTful 复制这个 API 结构。我有以下课程。

class File(restful.Resource):

    def put(self, fname):
        // do stuff here

然后使用以下代码自动映射该类。

app = Flask(__name__)
api = restful.Api(app)

api.add_resource(File, '/<string:fname>')

if __name__ == '__main__':
    app.run(debug=True)

使用以下curl命令上传文件就可以了。

curl 127.0.0.1:5000/foo.txt -X PUT --data-urlencode file@foo.txt

但是,以下命令失败。

curl 127.0.0.1:5000/foo/bar.txt -X PUT --data-urlencode file@bar.txt

这是因为127.0.0.1:5000/foo被视为另一个未在我的代码中映射的 REST 资源。

有没有使用 Flask-RESTful 库完成我想要的方法?

4

1 回答 1

4

您可以尝试使用path占位符而不是string

api.add_resource(File, '/<path:fname>')
于 2013-11-09T13:44:23.243 回答