编程语言
首页 > 编程语言> > python-从BlobstoreUploadHandler获取当前用户

python-从BlobstoreUploadHandler获取当前用户

作者:互联网

我想从BlobstoreUploadHandler获取当前用户.我正在为Web应用程序使用终结点,但是(在终结点之外)我构建了/ uploadUrl来将文件上传到Blobstore.

图像正确上传.因此,我需要链接上传到用户的图像,但是users.get_current_user()返回None.在前端,使用OAuth2登录用户.对这个问题有什么想法吗?

如果我使用endpoints.get_current_user()会引发错误:

No valid endpoints user in environment

这是我的代码:

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()

解决方法:

每个应用程序都需要自己的登录名,并且如果要在代码中使用User类,则每个类都需要导入和声明用户.

从google.appengine.api导入用户
导入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/

标签:python,google-cloud-storage,google-app-engine,google-cloud-platform,google-cloud
来源: https://codeday.me/bug/20191012/1902742.html