2

エラーは次のURLの画像を表示しません

http://127.0.0.1:8080/serve/CrObzPCoJfjG4ESUUb0hjw==

画像はblobstoreに存在します管理者で確認できますマイルート リダイレクトルートのドープ

RedirectRoute('/serve/[a-zA-Z0-9-_]', handlers.ServeHandler, name='ServeHandler'),

私のコード:

from google.appengine.ext import blobstore
from google.appengine.ext.webapp import blobstore_handlers

import urllib

class ServeHandler(blobstore_handlers.BlobstoreDownloadHandler):
  def get(self, resource):
    logging.info("SERVE " + str(resource))
    resource = str(urllib.unquote(resource))
    blob_info = blobstore.BlobInfo.get(resource)
    self.send_blob(blob_info)

class FetchHandler(blobstore_handlers.BlobstoreUploadHandler):
  def post(self):
    upload_files = self.get_uploads('file')  # 'file' is file upload field in the form
blob_info = upload_files[0]
logging.info("FOUND blob info" + str(blob_info))
self.redirect('/serve/%s' % blob_info.key())


class ImageHandler(BaseHandler):
    @user_required
    def get(self, **kwargs):
        user_session = self.user
        user_session_object = self.auth.store.get_session(self.request)
        upload_url = blobstore.create_upload_url('/fetch/')    

        user_info = models.User.get_by_id(long( self.user_id ))
        user_info_object = self.auth.store.user_model.get_by_auth_token(
            user_session['user_id'], user_session['token'])

        try:
            params = {
                "upload_url": upload_url,
                "user_session" : user_session,
                "user_session_object" : user_session_object,
                "user_info" : user_info,
                "user_info_object" : user_info_object,
                "userinfo_logout-url" : self.auth_config['logout_url'],
                }
            return self.render_template('image.html', **params)
        except (AttributeError, KeyError), e:
            return "Secure zone error:" + " %s." % e
4

3 に答える 3

0

に提供しているURLcreate_upload_urlは、のように定義しているため、間違っていると思い/upload/ます。

最後にスラッシュを追加すると、機能するはずです。

upload_url = blobstore.create_upload_url('/upload/')
于 2013-02-18T15:51:26.957 に答える
0

あなたのコード(あなたの質問の以前のリビジョンを形成する)を私が働いているいくつかのコードと比較すると、あなたはルート上の/を望まないかもしれないと思う/upload/(すなわち、/upload代わりに使用する)。

しかし、私はよく知らないRedirectRoute

于 2013-02-23T07:13:27.683 に答える
0

私はあなたの問題がこの行にあるかもしれないと思います:

 self.redirect('/serve/%s' % blob_info.key())

以下の最近の変更によると、appengineを最新リリースに更新したと仮定しています。

The Blobstore service now returns the created filename instead of the blobKey when using Cloud Storage [link][1]

最近のリリースノートとそれに伴う変更点をご覧ください。

于 2013-02-25T21:34:06.250 に答える