4

ファイルをブロブストアにアップロードすると、「s9QmBqJPuiVzWbySYvHVRg==」のような名前に変更されます。その「/serve」URL に移動してファイルをダウンロードすると、ダウンロードされたファイルにはこの文字の寄せ集めの名前が付けられます。

ダウンロードしたファイルをアップロード時に元のファイル名のままにする方法はありますか?

4

3 に答える 3

6

元のファイル名を使用してファイルがアップロードBlobUploadHandler されると、新しく作成されたBlobInfoエンティティに name プロパティとして保存されます。

BLOB サーブ ハンドラーでは、BLOB をダウンロードの添付ファイルとして返すように指定したり、保存する名前を指定したりできます。

from google.appengine.ext import webapp
import urllib

class ServeHandler(blobstore_handlers.BlobstoreDownloadHandler):
  def get(self, blob_info_key=None):
    blob_info_key = str(urllib.unquote(blob_info_key))
    blob_info = retrieve_blob_info(blob_info_key)
    self.send_blob(blob_info, save_as=blob_info.filename)


blob_app = webapp.WSGIApplication([
  ('/_s/blob/([^/]+)', blob.ServeHandler),
], debug=config.DEBUG)
于 2012-08-30T17:10:52.143 に答える
0

参照するコードは BlobInfo エンティティのキ​​ーですが、元のファイル名はプロパティとして保存されます。

ファイル名でファイルをダウンロードする簡単な方法が必要な場合は、ServeHandler に使用するこのコードを使用できます。これは私のニーズに合っています。blobstore キーの代わりにファイル名でファイルをダウンロードします。

class ServeHandler(blobstore_handlers.BlobstoreDownloadHandler):
  def get(self, resource):
    blobs = blobstore.BlobInfo.gql("WHERE filename = '%s'" %(urllib.unquote(resource)))
    if blobs.count(1) > 0:
        blob_info = blobstore.BlobInfo.get(blobs[0].key())
        self.send_blob(blob_info,save_as=True) 
于 2013-05-12T23:47:48.917 に答える
0

GAE 管理コンソールの BLOB ビューアー セクションで、個々の BLOB を表示すると、下のスクリーンショットに示すように、ビューアーの右下にダウンロード ボタンがあります。

ここに画像の説明を入力

于 2012-08-30T16:55:39.417 に答える