如何在Google Cloud Storage中使用OAuth2Decorator?

1 投票
3 回答
1034 浏览
提问于 2025-04-17 07:23

我正在按照这个说明,想把我的应用引擎Python网络服务连接到Google存储,特别是想使用文件API。我看过了示例,但对我来说似乎不太管用。我需要这个网络服务在后台进行授权,这样才能从存储中获取我的文件。

我想用装饰器来传递我的client_id和client_secret,但这个过程对我来说不是很清楚。有没有人能提供一个例子或者详细讲讲这个过程?

补充:我使用的是Python 2.7的运行环境。

3 个回答

-1

如果你在使用apiclient这个工具,同时还在用原生的REST API,那么它的用法大概是这样的……

from apiclient.discovery import build
import httplib2
from oauth2client.appengine import OAuth2Decorator

decorator = OAuth2Decorator(client_id=YOUR_GOOGLE_CLIENT_ID,
                            client_secret=YOUR_GOOGLE_CLIENT_SECRET,
                            scope=GOOGLE_SERVICE_SCOPE,
                            )

class MainHandler(webapp.RequestHandler):

   @decorator.oauth_required
   def get(self):
    service = build(SERVICE_NAME, 
                    SERVICE_VERSION,
                    http=decorator.http())
    magic = service.method()

你可以看看其他API的apiclient示例,这可能会对你有帮助。例如,有一个关于App Engine和任务API结合使用的不错示例,它也使用了OAuth2。

http://code.google.com/appengine/articles/python/getting_started_with_tasks_api.html

1

这可能不是最直接的回答,但你有没有考虑过在App Engine上使用内置的Google存储API呢?

http://code.google.com/appengine/docs/python/googlestorage/

这样你就可以完全绕过原生的API了。

1

我成功地让它正常运行了,方法是使用了来自au-to-do这个谷歌应用引擎项目的gslite.py脚本,并且用上了我的账号信息。

撰写回答