0

ブロブストアに保存された画像の提供/レンダリングについて質問があります

404 エラーが表示される URL が見つかったようです?? http://clockinapple.appspot.com/serve/AMIfv97XybVYJy5Jk1e7WCSfCc-IO7zBtlVaC8ef8-Im /etc/

コードは基本的に例と同じです - どんな助けでも大歓迎です

これは私のハンドラコードです:

class ServeHandler(blobstore_handlers.BlobstoreDownloadHandler):
    def get(self, resource):
        resource = unicode(str(urllib.unquote(resource)))
        blob_info = blobstore.BlobInfo.get(resource)
        self.send_blob(blob_info)


class GetBlobstoreUrl(BaseHandler):
    def get(self):
        upload_url = blobstore.create_upload_url('/upload/')
        self.response.out.write(upload_url)

class UploadHandler(blobstore_handlers.BlobstoreUploadHandler):
    def post(self):
        upload_files = self.get_uploads('file')
        blob_info = upload_files[0]
        user_info = blobstore.BlobInfo.all().get().filename
        text = user_info
        head, sep, tail = text.partition('.')
        user_info = head
        photo = clockin.UserPhoto(blob_key=blob_info.key(), employee=user_info)
        photo.put()

class GetLogs(BaseHandler):
    def get(self):
        logs = clockin.UserPhoto.all() 
        params = {'logs': logs}

        return self.render_template('logs.html', **params)

これは私のモデルコードです:

class UserPhoto(db.Model):
    employee = db.StringProperty(db.Key)
    blob_key = blobstore.BlobReferenceProperty()
    create_timestamp = db.DateTimeProperty(auto_now_add=True)
    update_timestamp = db.DateTimeProperty(auto_now=True)

私のルート:

RedirectRoute('/serve/([^/]+)?', ServeHandler, name='serve_handler', strict_slash=True),
RedirectRoute('/logs/', GetLogs, name='get_logs', strict_slash=True),
RedirectRoute('/get_blobstore_url/', GetBlobstoreUrl, name='get_blobstore_url',   strict_slash=True),

HTML の提供方法: (us がインスタンスです)

<td><img src='/serve/{{us.blob_key.key()}}'></img></td>
4

1 に答える 1

1

ブロブストアに直接クエリを実行したところ、画像が正しく表示されました。これが誰かの助けになることを願っています。

class PicDownload(BaseHandler):
    def get(self):
        emps = clockin.Employee.all().fetch(100)
        ekey = self.request.GET.get("select1")
        ekey = str(ekey)
        afile = [] 
        blob_info = blobstore.BlobInfo.all().filter('filename =', ekey+'.jpg').order('-  creation').fetch(20)
        for a in blob_info:
        afile.append(get_serving_url(a))

        form = 'get_pics.html'

        params = {'blob_info': blob_info,
                  'afile': afile,
                  }

        return self.render_template(form, **params)

HTML 側:

<select id="select1" name='select1' onchange='this.form.submit()'>
{% for e in emps %}
    <option value={{e.key()}} ><href a=/pic_download/{{e.key()}}>{{e.username}}
    </href>    
    </option>
{% endfor %}
</select>
于 2012-07-27T17:19:32.977 に答える