目前,我正在开发一款运行在Google应用引擎顶部的django应用。模型领域之一看起来像,
picture = models.ImageField()
但它在保存特定型号时显示以下错误
File "/django_projects/cityguide-backend/src/lib/django/db/models/fields/files.py", line 93, in save
self.name = self.storage.save(name, content, max_length=self.field.max_length)
File "/django_projects/cityguide-backend/src/lib/django/core/files/storage.py", line 63, in save
name = self._save(name, content)
File "/django_projects/cityguide-backend/src/lib/django/core/files/storage.py", line 248, in _save
fd = os.open(full_path, flags, 0o666)
File "/google_appengine/google/appengine/tools/devappserver2/python/stubs.py", line 73, in fake_open
raise OSError(errno.EROFS, 'Read-only file system', filename)
OSError: [Errno 30] Read-only file system: u'/django_projects/backend/src/Screenshot_from_2014-04-18_190527.png'
经过一些研究,我发现GAE won't support writing operations to file system。我认为我需要使用GAE的blobstore
或Google Cloud存储空间。但我不知道如何将这些与django的模型整合在一起。
答案 0 :(得分:4)
具体而言,Django默认不支持App Engine的云存储或数据存储,需要自定义存储提供商才能使用它们。这些是官方Google文档涵盖的解决方案:
还有以下非官方项目:
如果您想使用云存储实施自己的存储提供商,可以查看django-appengine-toolkit中的storage.py作为参考。