dha*_*ana 0 django google-app-engine python-2.7
我是Google App Engine的新手.我在谷歌应用引擎中部署了纯django应用程序.它工作正常.但是我写了django文件上传功能,如下图所示,
def forhandler(list, project_id, task_id, request):
for i in list:
filename = i
extension = filename.content_type
print i
newdoc = FileUpload(project_id=project_id, task_id=task_id, file=filename, filetype=extension)
newdoc.save()
Run Code Online (Sandbox Code Playgroud)
当我运行./manage.py运行服务器时.上述功能正常工作并正确上传文件.当我使用谷歌应用程序引擎意味着dev_appserver.py my_project.这是完美的,但是当我使用上述功能上传文件时它会出现如下所示的错误,
Exception Value: [Errno 30] Read-only file system: u'/home/nyros/Desktop/projectstat/projectstat/media/documents/2013/05/24/1354676051_chasm_fishing_w1.jpeg'
Run Code Online (Sandbox Code Playgroud)
如何使用django和谷歌应用引擎上传文件?请解决我的问题.谢谢......
这里的问题是App Engine使用只读文件系统,默认的Django文件上传机制想要将文件存储在磁盘上.(无论您是否使用App Engine,将图像存储在普通数据库中都是一个坏主意.)
相反,您应该使用AppEngine的Blobstore API来保存图像.这是App Engine提供的特殊存储,用于存储用户上传的大量数据.
好消息是有一个插件可以为您处理所有这些:http://www.allbuttonspressed.com/projects/django-filetransfers
只需按照那里的说明进行操作即可.
(注意:我只用django-nonrel尝试过这个.我从来没有尝试过使用香草Django.)
| 归档时间: |
|
| 查看次数: |
1711 次 |
| 最近记录: |