本文整理汇总了Python中webob.Request.headers['content-length']方法的典型用法代码示例。如果您正苦于以下问题:Python Request.headers['content-length']方法的具体用法?Python Request.headers['content-length']怎么用?Python Request.headers['content-length']使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类webob.Request
的用法示例。
在下文中一共展示了Request.headers['content-length']方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: PUT
# 需要导入模块: from webob import Request [as 别名]
# 或者: from webob.Request import headers['content-length'] [as 别名]
def PUT(self, env, start_response):
""" Handle Container update and create request """
# First check if the resource exists and if it is a directory
path = '/' + concat_parts('v1', self.account_name, self.container_name,
self.parent_name, self.object_name)
exists, headers, body = check_resource(env, 'HEAD', path,
self.logger, False)
if exists:
content_type = headers.get('content-type', '')
content_type = content_type.lower() if content_type else ''
if (content_type.find('application/directory') < 0 and
self.object_name):
return get_err_response('Conflict')
else:
res = self._check_parent(env, start_response)
if res:
return res
req = Request(env)
req.headers['content-type'] = 'application/directory'
req.headers['content-length'] = '0'
req.body = ''
res = req.get_response(self.app)
return res
示例2: PUT
# 需要导入模块: from webob import Request [as 别名]
# 或者: from webob.Request import headers['content-length'] [as 别名]
def PUT(self, env, start_response):
"""
Handle Container update and create request
"""
# First check if the resource exists and if it is a directory
path = '/' + concat_parts('v1', self.account_name, self.container_name,
self.parent_name, self.object_name)
exists, headers, body = check_resource(env, 'HEAD', path, self.logger,
False, None)
if exists:
content_type = headers.get('content-type', '')
content_type = content_type.lower() if content_type else ''
if content_type.find('application/directory') >= 0:
return get_err_response('Conflict')
else:
path = '/' + concat_parts('v1', self.account_name,
self.container_name)
query_string = 'delimiter=/&prefix=' + \
concat_parts(self.parent_name, self.object_name) + '/'
parent_exists, dummy, body = check_resource(env, 'GET', path,
self.logger, True,
query_string)
if parent_exists:
try:
children = json.loads(body)
if len(children) > 0:
# No children under, no resource exist
return get_err_response('Conflict')
except ValueError:
return get_err_response('InconsistantState')
else:
return get_err_response('NoParentContainer')
# Check if the parent is OK. it should be either a real directory or
# a virtual directory
res = self._check_parent(env, start_response)
if res:
return res
# Create a new WebOb Request object according to the current request
req = Request(env)
metadata = {}
if req.body:
try:
body = json.loads(req.body)
except ValueError:
return get_err_response('InvalidContent')
if body.get('metadata'):
metadata = body['metadata']
for key in metadata:
if metadata[key] == '':
req.headers[Consts.META_OBJECT_ID + key] = ''
else:
req.headers[Consts.META_OBJECT_ID + key] = \
key + ":" + str(metadata[key])
else:
metadata = {}
try:
req.body = str(body.get('value', ''))
req.headers['content-type'] = body.get('mimetype',
'text/plain')
req.headers[Consts.VALUE_ENCODING] = \
body.get('valuetransferencoding', 'utf-8')
except KeyError:
return get_err_response('InvalidContent')
else:
req.headers['content-length'] = '0'
res = req.get_response(self.app)
# Deal with the response now.
# Build the response message body according to CDMI specification
# If the response status is 201, then we know we have successfully
# created the object. According to CDMI spec, only send response body
# when creating new object.
if res.status_int == 201:
body = {}
body['objectType'] = Consts.CDMI_APP_OBJECT
body['objectName'] = self.object_name
body['parentURI'] = concat_parts(self.account_name,
self.container_name,
self.parent_name) + '/'
body['completionStatus'] = 'Complete'
body['metadata'] = metadata
res.body = json.dumps(body, indent=2)
# Otherwise, no response body should be returned.
else:
res.body = ''
return res
示例3: PUT
# 需要导入模块: from webob import Request [as 别名]
# 或者: from webob.Request import headers['content-length'] [as 别名]
def PUT(self, env, start_response):
"""
Handle Container update and create request
"""
# First check if the resource exists and if it is a directory
path = '/' + concat_parts('v1', self.account_name, self.container_name,
self.parent_name, self.object_name)
exists, headers, body = check_resource(env, 'GET', path, self.logger,
False, None)
if exists:
content_type = headers.get('content-type', '')
content_type = content_type.lower() if content_type else ''
if content_type.find('application/directory') >= 0:
return get_err_response('Conflict')
else:
path = '/' + concat_parts('v1', self.account_name,
self.container_name)
query_string = 'delimiter=/&prefix=' + \
concat_parts(self.parent_name, self.object_name) + '/'
parent_exists, dummy, body = check_resource(env, 'GET', path,
self.logger, True,
query_string)
if parent_exists:
try:
children = json.loads(body)
if len(children) > 0:
# No children under, no resource exist
return get_err_response('Conflict')
except ValueError:
return get_err_response('InconsistantState')
else:
return get_err_response('NoParentContainer')
# Check if the parent is OK. it should be either a real directory or
# a virtual directory
res = self._check_parent(env, start_response)
if res:
return res
# Create a new WebOb Request object according to the current request
#if we found X-Object-UploadID in the header, we need know that
#the request is uploading a piece of a large object, the piece
#will need to go to the segments folder
try:
self._handle_part(env)
except Exception as ex:
return get_err_response(ex.message)
req = Request(env)
metadata = {}
if req.body:
try:
body = self._handle_body(env, True)
except Exception:
return get_err_response('InvalidBody')
# headling copy object
if body.get('copy'):
# add the copy-from header to indicate a copy operation
# for swift
req.headers['X-Copy-From'] = body.get('copy')
req.body = ''
else:
if body.get('metadata'):
metadata = body['metadata']
for key in metadata:
if metadata[key] == '':
req.headers[Consts.META_OBJECT_ID + key] = ''
else:
req.headers[Consts.META_OBJECT_ID + key] = \
key + ":" + str(metadata[key])
else:
metadata = {}
try:
req.body = str(body.get('value', ''))
req.headers['content-type'] = body.get('mimetype',
'text/plain').lower()
encoding = body.get('valuetransferencoding', 'utf-8')
req.headers[Consts.VALUE_ENCODING] = encoding
# if the value is encoded using base64, then
# we need to decode it and save as binary
if encoding == Consts.ENCODING_BASE64:
req.body = base64.decodestring(req.body)
except KeyError:
return get_err_response('InvalidContent')
else:
req.headers['content-length'] = '0'
res = req.get_response(self.app)
# Deal with the response now.
# Build the response message body according to CDMI specification
# If the response status is 201, then we know we have successfully
# created the object. According to CDMI spec, only send response body
# when creating new object.
if res.status_int == 201:
body = {}
#.........这里部分代码省略.........
示例4: PUT
# 需要导入模块: from webob import Request [as 别名]
# 或者: from webob.Request import headers['content-length'] [as 别名]
def PUT(self, env, start_response):
""" Handle non-CDMI Object update and create request. """
# First check if the resource exists and if it is a directory
path = '/' + concat_parts('v1', self.account_name, self.container_name,
self.parent_name, self.object_name)
exists, headers, body = check_resource(env, 'GET', path, self.logger,
False, None)
if exists:
content_type = headers.get('content-type', '')
content_type = content_type.lower() if content_type else ''
if content_type.find('application/directory') >= 0:
return get_err_response('Conflict')
else:
path = '/' + concat_parts('v1', self.account_name,
self.container_name)
query_string = 'delimiter=/&prefix=' + \
concat_parts(self.parent_name, self.object_name) + '/'
parent_exists, dummy, body = check_resource(env, 'GET', path,
self.logger, True,
query_string)
if parent_exists:
try:
children = json.loads(body)
if len(children) > 0:
#No children under, no resource exist
return get_err_response('Conflict')
except ValueError:
return get_err_response('InconsistantState')
else:
return get_err_response('NoParentContainer')
# Check if the parent is OK. it should be either a real directory
# or a virtual directory
res = self._check_parent(env, start_response)
if res:
return res
try:
self._handle_part(env)
except Exception as ex:
return get_err_response(ex.message)
try:
body = self._handle_body(env, False)
except Exception as ex:
return get_err_response('InvalidBody')
else:
env['CONTENT_TYPE'] = body.get('mimetype', 'text/plain')
req = Request(env)
req.body = body.get('value', '')
req.headers['content-length'] = len(req.body)
res = req.get_response(self.app)
if (res.status_int in [201, 204] and
env.get('HTTP_X_USE_EXTRA_REQUEST')):
extra_res = self._put_manifest(env)
res.status_int = extra_res.status
return res