当前位置: 首页>>代码示例>>Python>>正文


Python Request.headers['content-length']方法代码示例

本文整理汇总了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
开发者ID:litong01,项目名称:cdmi,代码行数:29,代码来源:noncdmicontrollers.py

示例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
开发者ID:litong01,项目名称:cdmi,代码行数:95,代码来源:cdmicontrollers.py

示例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 = {}
#.........这里部分代码省略.........
开发者ID:gwdg,项目名称:cdmi,代码行数:103,代码来源:cdmicontrollers.py

示例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
开发者ID:IntelLabsEurope,项目名称:CDMI-OS,代码行数:65,代码来源:noncdmicontrollers.py


注:本文中的webob.Request.headers['content-length']方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。