本文整理汇总了Python中webob.Request.headers['Date']方法的典型用法代码示例。如果您正苦于以下问题:Python Request.headers['Date']方法的具体用法?Python Request.headers['Date']怎么用?Python Request.headers['Date']使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类webob.Request
的用法示例。
在下文中一共展示了Request.headers['Date']方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: __call__
# 需要导入模块: from webob import Request [as 别名]
# 或者: from webob.Request import headers['Date'] [as 别名]
def __call__(self, env, start_response):
req = Request(env)
if 'AWSAccessKeyId' in req.GET:
try:
req.headers['Date'] = req.GET['Expires']
req.headers['Authorization'] = \
'AWS %(AWSAccessKeyId)s:%(Signature)s' % req.GET
except KeyError:
return get_err_response('InvalidArgument')(env, start_response)
if not 'Authorization' in req.headers:
return self.app(env, start_response)
try:
account, signature = \
req.headers['Authorization'].split(' ')[-1].rsplit(':', 1)
except Exception:
return get_err_response('InvalidArgument')(env, start_response)
try:
controller, path_parts = self.get_controller(req.path)
except ValueError:
return get_err_response('InvalidURI')(env, start_response)
token = base64.urlsafe_b64encode(canonical_string(req))
controller = controller(env, self.app, account, token, **path_parts)
if hasattr(controller, req.method):
res = getattr(controller, req.method)(env, start_response)
else:
return get_err_response('InvalidURI')(env, start_response)
return res(env, start_response)
示例2: __call__
# 需要导入模块: from webob import Request [as 别名]
# 或者: from webob.Request import headers['Date'] [as 别名]
def __call__(self, env, start_response):
req = Request(env)
if 'AWSAccessKeyId' in req.GET:
try:
req.headers['Date'] = req.GET['Expires']
req.headers['Authorization'] = \
'AWS %(AWSAccessKeyId)s:%(Signature)s' % req.GET
except KeyError:
return get_err_response('InvalidArgument')(env, start_response)
if not 'Authorization' in req.headers:
return self.app(env, start_response)
try:
keyword, info = req.headers['Authorization'].split(' ')
except:
return get_err_response('AccessDenied')(env, start_response)
if keyword != 'AWS':
return get_err_response('AccessDenied')(env, start_response)
try:
account, signature = info.rsplit(':', 1)
except:
return get_err_response('InvalidArgument')(env, start_response)
try:
#controller, path_parts = self.get_controller(req.path)
controller, path_parts = self.get_controller(req.path_info)
except ValueError:
return get_err_response('InvalidURI')(env, start_response)
if 'Date' in req.headers:
date = email.utils.parsedate(req.headers['Date'])
if date == None:
return get_err_response('AccessDenied')(env, start_response)
d1 = datetime.datetime(*date[0:6])
d2 = datetime.datetime.utcnow()
epoch = datetime.datetime(1970, 1, 1, 0, 0, 0, 0)
if d1 < epoch:
return get_err_response('AccessDenied')(env, start_response)
delta = datetime.timedelta(seconds=60 * 10)
if d1 - d2 > delta or d2 - d1 > delta:
return get_err_response('RequestTimeTooSkewed')(env, start_response)
token = base64.urlsafe_b64encode(canonical_string(req))
controller = controller(env, self.app, account, token, **path_parts)
if hasattr(controller, req.method):
res = getattr(controller, req.method)(env, start_response)
else:
return get_err_response('InvalidURI')(env, start_response)
return res(env, start_response)