授权错误:预期来自 Google 存储的状态 [201].但获得了401状态



我正在尝试通过"App Engine"在谷歌云存储中创建一个新文件。我已经向存储桶的服务帐户授予了完全权限,但仍然收到以下错误。

法典:

import cloudstorage as _gcs
from google.appengine.api import app_identity,urlfetch
class get_ad_insights(webapp.RequestHandler):
    def get(self):
        bucket_name = 'awstogcs'
        bucket = '/' + bucket_name
        filename = bucket + '/facebook_data'
        self.tmp_filenames_to_clean_up = []
        write_retry_params = _gcs.RetryParams(backoff_factor=1.1)
        gcs_file=_gcs.open(
            filename, 'w', content_type='text/plain', options={
                'x-goog-meta-foo': 'foo', 'x-goog-meta-bar': 'bar'},
                 retry_params=write_retry_params) 
        gcs_file.write('abcdn')
        gcs_file.write('f'*1024*4 + 'n')
        gcs_file.close()
        self.tmp_filenames_to_clean_up.append(filename)

错误信息:

Traceback (most recent call last):
  File "C:Program Files (x86)GoogleCloud SDKgoogle-cloud-sdkplatformgoogle_appenginegoogleappengineruntimewsgi.py", line 267, in Handle
    result = handler(dict(self._environ), self._StartResponse)
  File "C:Program Files (x86)GoogleCloud SDKgoogle-cloud-sdkplatformgoogle_appenginelibwebapp2-2.3webapp2.py", line 1519, in __call__
    response = self._internal_error(e)
  File "C:Program Files (x86)GoogleCloud SDKgoogle-cloud-sdkplatformgoogle_appenginelibwebapp2-2.3webapp2.py", line 1511, in __call__
    rv = self.handle_exception(request, response, e)
  File "C:Program Files (x86)GoogleCloud SDKgoogle-cloud-sdkplatformgoogle_appenginelibwebapp2-2.3webapp2.py", line 1505, in __call__
    rv = self.router.dispatch(request, response)
  File "C:Program Files (x86)GoogleCloud SDKgoogle-cloud-sdkplatformgoogle_appenginelibwebapp2-2.3webapp2.py", line 1253, in default_dispatcher
    return route.handler_adapter(request, response)
  File "C:Program Files (x86)GoogleCloud SDKgoogle-cloud-sdkplatformgoogle_appenginelibwebapp2-2.3webapp2.py", line 1077, in __call__
    return handler.dispatch()
  File "C:Program Files (x86)GoogleCloud SDKgoogle-cloud-sdkplatformgoogle_appenginelibwebapp2-2.3webapp2.py", line 547, in dispatch
    return self.handle_exception(e, self.app.debug)
  File "C:Program Files (x86)GoogleCloud SDKgoogle-cloud-sdkplatformgoogle_appenginelibwebapp2-2.3webapp2.py", line 545, in dispatch
    return method(*args, **kwargs)
  File "C:ChaituProjectsfbcontrollersgetinsights.py", line 40, in get
    retry_params=write_retry_params)
  File "libcloudstoragecloudstorage_api.py", line 95, in open
    return storage_api.StreamingBuffer(api, filename, content_type, options)
  File "libcloudstoragestorage_api.py", line 699, in __init__
    body=content)
  File "libcloudstorageerrors.py", line 128, in check_status
    raise AuthorizationError(msg)
**AuthorizationError: Expect status [201] from Google Storage. But got status 401.**
Path: '/media-appengine/facebook_data'.
Request headers: {'content-type': 'text/plain', 'x-goog-meta-foo': 'foo', 'x-goog-api-version': '2', 'x-goog-resumable': 'start', 'x-goog-meta-bar': 'bar', 'accept-encoding': 'gzip, *'}.
Response headers: {'alt-svc': 'quic=":443"; ma=2592000; v="38,37,36,35"', 'content-type': 'application/xml; charset=UTF-8', 'date': 'Mon, 12 Jun 2017 19:17:37 GMT', 'www-authenticate': 'Bearer realm="https://accounts.google.com/", error="invalid_token"', 'content-length': '131', 'x-guploader-uploadid': 'AEnB2Uo4r-8lsPGFCJNsbukPIHyX1eHTS9pC9cMOmDFqwPr_8ERTdBpwa8ce1T5ri5Y5OaJ3Qx8ZRYVM8QwT1ImL5fjmsZguUg', 'vary': 'Origin', 'server': 'UploadServer'}.
Body: "<?xml version='1.0' encoding='UTF-8'?><Error><Code>AuthenticationRequired</Code><Message>Authentication required.</Message></Error>".
Extra info: None.

当我删除以下代码选项={ 'x-goog-meta-foo': 'foo', 'x-goog-meta-bar': 'bar'} 脚本正在运行

相关内容

最新更新