在Django上传文件,然后通过REST将其发送到其他地方?

时间:2008-10-29 03:45:09

标签: python django api rest scribd

我正在构建一个简单的Django应用程序,它将使用scribd来显示文档。我希望有一个页面,管理员可以通过网站上传文档,因为我需要在写入之前了解一些相关信息。最好/最简单的方法是什么,显示上传页面,然后获取上传的文件并通过其api的docs.upload方法将其发送到scribd?我在这个Python / Django / REST API的东西上有点新鲜,很抱歉,如果这个问题太多了。

2 个答案:

答案 0 :(得分:3)

这是一个很多问题。

使用Django处理文件上传非常简单,请参阅File Uploads documentation示例。简而言之,您可以通过request.FILES['file']访问上传的文件。

要调用scribd api,您可以使用urllib2;有关说明,请参阅此Hackoarama page。 urllib2可能有点复杂,但是一旦你掌握了它就会起作用。

您可以直接从Django视图中调用scribd api,但最好将其分离出来:从Django视图中将文件保存在磁盘上某处,并在邮件系统上放置“上传此消息”消息(例如beanstalkd)。有一个单独的过程接收消息并将文件上传到scribd。这样,您就可以保护您的http进程和用户免受访问API的任何问题以及相关的延迟。

答案 1 :(得分:1)

你想做什么(至少从我在这里和Django文档网站上看到的)创建一个custom storage system.

这应该可以满足你的需要 - 毕竟,这是他们用来启动这个例子的动力!