示例#1
0
    def make_request(self,
                     path,
                     method='get',
                     headers={},
                     params={},
                     account_id_required=False):
        """

        :param path:
        :param method:
        :param headers:
        :param params:
        :param account_id_required:
        :return:
        """
        if self.authorized:
            url = self.api_url + path
            if method == 'get':
                return self.api_session.get(url, headers=headers)
            elif method == 'post':
                if account_id_required:
                    params.update({'accountId': self.account_id})
                headers.update({'Content-Type': 'application/json'})
                return self.api_session.post(url, json=params, headers=headers)
            else:
                raise B2InvalidRequestType('Request type must be get or post')
        else:
            raise B2AuthorizationError('Unknown Error')
示例#2
0
    def _authorize(self):
        """

        :return:
        """
        path = self.auth_url + '/b2_authorize_account'
        result = requests.get(path,
                              auth=HTTPBasicAuth(self.key_id,
                                                 self.application_key))
        if result.status_code == 200:
            result_json = result.json()
            self.authorized_at = datetime.datetime.utcnow()
            self.account_id = result_json['accountId']
            self.auth_token = result_json['authorizationToken']
            self.api_url = result_json['apiUrl'] + '/b2api/v1'
            self.download_url = result_json['downloadUrl'] + '/file/'
            self.api_session = requests.Session()
            self.api_session.headers.update({'Authorization': self.auth_token})
        else:
            raise B2AuthorizationError(decode_error(result))