我想从BlobstoreUploadHandler获取当前用户。我正在为我的Web应用程序使用端点,但是(在端点之外)我构建/ uploadUrl将文件上传到Blobstore。
图片正确上传。因此,我需要链接上传到用户的图像,但 users.get_current_user()返回无。在前端,用户使用OAuth2进行记录。对这个问题有任何想法吗?
如果我使用endpoints.get_current_user()引发错误:
环境中没有有效的终端用户
这是我的代码:
class UploadHandler(blobstore_handlers.BlobstoreUploadHandler):
def post(self):
upload_files = self.get_file_infos()
file_info = upload_files[0]
gcs_filename = file_info.gs_object_name
file_key = blobstore.create_gs_key(gcs_filename)
File(file=gcs_filename, owner=users.get_current_user() ).put()
答案 0 :(得分:1)
每个应用程序都需要自己的登录,如果要在代码中使用User类,则每个类都需要导入和声明用户。
来自google.appengine.api导入用户 import webapp2
class MyHandler(webapp2.RequestHandler):
def get(self):
user = users.get_current_user()
if user:
greeting = ('Welcome, %s! (<a href="%s">sign out</a>)' %
(user.nickname(), users.create_logout_url('/')))
else:
greeting = ('<a href="%s">Sign in or register</a>.' %
users.create_login_url('/'))
self.response.out.write('<html><body>%s</body></html>' % greeting)
有关详细信息,请参阅此文章 - https://cloud.google.com/appengine/docs/python/users/
答案 1 :(得分:0)
,您必须添加login: required
或login: admin
。
示例:
handlers:
- url: /upload_handler.*
script: my_app.media_handlers.application
login: required
在此之后,users.get_current_user()
应该有效。
关于此的其他帖子:Google App Engine get_current_user always return None, even if i'm logged