2013-11-09 17 views
2

Dropbox有一個REST API,允許使用以下URL進行文件上傳。 (Reference如何使用Flask-RESTful在REST API中傳遞文件路徑ala Dropbox?

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

我想複製使用瓶的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 [email protected]

但是,下面的命令失敗。

curl 127.0.0.1:5000/foo/bar.txt -X PUT --data-urlencode [email protected]

這是因爲127.0.0.1:5000/foo作爲未在我的代碼映射另一個REST資源處理。

有沒有一種方法可以完成我想要使用Flask-RESTful庫?

回答

4

您可以嘗試使用path佔位符代替string

api.add_resource(File, '/<path:fname>') 
+0

咦,無法相信我錯過了! – Ayrx

+0

很容易錯過。我可能是錯的,但我認爲在Flask文檔中甚至沒有使用'path'的例子。 – zero323

相關問題