api.py 文件源码

python
阅读 18 收藏 0 点赞 0 评论 0

项目:crypt-keeper 作者: mauricecarey 项目源码 文件源码
def obj_create(self, bundle, **kwargs):
        if not super(UploadUrlResource, self).is_valid(bundle):
            raise ImmediateHttpResponse(response=self.error_response(bundle.request, bundle.errors))
        log.info('Received request to create a new document upload record.')

        default_key_pair = get_default_key_pair()
        if not default_key_pair:
            err = 'No default key pair defined.'
            e = Exception(err)
            e.response = HttpResponseServerError('Internal configuration error: {error}.'.format(error=err))
            log.critical(err)
            raise e
        symmetric_key = generate_symmetric_key()
        if log.isEnabledFor(DEBUG):
            log.debug('Generated symmetric key for request: {key}.'.format(
                key=symmetric_key
            ))
        encrypted_symmetric_key = encrypt(symmetric_key, default_key_pair.public.key)
        if log.isEnabledFor(DEBUG):
            log.debug('Encrypted symmetric key for request: {key}.'.format(
                key=encrypted_symmetric_key
            ))
        current_user = bundle.request.user
        if log.isEnabledFor(DEBUG):
            log.debug('User for request: {user}.'.format(
                user=current_user
            ))

        document_metadata_map = bundle.data.get('document_metadata', {})
        document = self.create_document(current_user, default_key_pair, document_metadata_map, encrypted_symmetric_key)
        log.info('Document created for request.')

        single_use_url = sign_url(document.document_id, method=PUT)
        if log.isEnabledFor(DEBUG):
            log.debug('Created single use URL for request: {url}.'.format(
                url=single_use_url
            ))

        upload_url = Url(document_id=document.document_id, single_use_url=single_use_url, symmetric_key=symmetric_key)
        if log.isEnabledFor(DEBUG):
            log.debug('Generated upload URL {upload_url} for {user}.'.format(
                upload_url=upload_url,
                user=current_user.username,
            ))
        bundle.obj = upload_url
        return bundle
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号