1

私の Web アプリケーションは、Google App Engine で Django (django-nonrel) を使用しています。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)

/post_photo_to_facebook/ の IOError

[Errno 13] ファイルにアクセスできません: '/blobstore/writable:NDNFUjNIVDdVQTM4Rk9aSE1aQkJMUzJUMzVDRVNRVEhJSjU3RUhWOE9ZMkk3QlNWR0FDR0JDOFUxSlA0Wlk3MA=='

どんな助けでも大歓迎です - 読んでくれてありがとう!

4

1 に答える 1

4

ブロブストア ファイルはブロブストアに保存されます。openは、ローカル ファイル システム上のファイルを開く関数です ( BLOB の書き込みなどの特殊なケースをモジュロします)。docsに従って、ファイナライズ後にブロブストア ファイルを開く場合はfiles.blobstore.get_blob_key(file_name)、ファイル名を呼び出して、ブロブを参照するために使用する必要があるブロブ キー オブジェクトを取得する必要があります (そして を使用して開きますBlobReader)。

于 2011-04-22T08:59:49.953 に答える