Как устранить ошибку «[Errno 13] файл недоступен»? - PullRequest
1 голос
/ 22 апреля 2011

Мое веб-приложение использует Django (django-nonrel) в Google App Engine. Я пытаюсь открыть файл Blobstore.

Мой код успешно создает файл Blobstore и объект Photo для ссылки на имя файла Blobstore (вместе с некоторыми другими метаданными).

from __future__ import with_statement
from google.appengine.api import files
import mimetypes

...

  file_name = files.blobstore.create(mime_type=mimetypes.guess_type(request.FILES['photo'].name)[0])

  with files.open(file_name, 'a') as f:
    f.write(photo_data)

  files.finalize(file_name)

  photo = Photo()
  photo.file_name = file_name
  ...
  photo.save()

Однако попытка открыть файл приводит к следующей ошибке:

opened_file = open(photo.file_name)

IOError at / post_photo_to_facebook /

Файл [Errno 13] недоступен: '/ blobstore / writeable: NDNFUjNIVDdVQTM4Rk9aSE1aQkJMUzJUMzVDRVNRVEhJSjU3RUhWOE9ZMkk3QlNWR0FDR0JDOFUlk2 *W=0WW1S2 = WW

Любая помощь приветствуется - спасибо за чтение!

1 Ответ

4 голосов
/ 22 апреля 2011

Файлы магазина блогов хранятся в, ну, в магазине блогов.open - это функция, которая открывает файлы в локальной файловой системе (по специальным случаям по модулю, как запись больших двоичных объектов).Согласно документам , если вы хотите открыть файл хранилища больших двоичных объектов после его завершения, вам нужно вызвать files.blobstore.get_blob_key(file_name) для имени файла, чтобы получить объект ключа BLOB-объекта, который вы должны использовать для ссылки на BLOB-объект (и открытьэто используя BlobReader).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...