Всем спасибо, я уже тоже разобрался.
Обидно, что приходится терять время на протыкивание способа работы того или иного метода, вместо того, чтобы расположить и назвать все параметры так, как это описано в документации.
У условного telegram все методы работают ровно так, как описано в доках.
Особый смак - не пришлось кодировать файл, просто открыть и отправить на диск.
Этот шаг я мучил несколько часов наверное.
Зато в доках написано, что точно надо кодировать.
Мой код:
Обидно, что приходится терять время на протыкивание способа работы того или иного метода, вместо того, чтобы расположить и назвать все параметры так, как это описано в документации.
У условного telegram все методы работают ровно так, как описано в доках.
Особый смак - не пришлось кодировать файл, просто открыть и отправить на диск.
Этот шаг я мучил несколько часов наверное.
Зато в доках написано, что точно надо кодировать.
Мой код:
Код |
---|
def upload_file(file_to_upload, folder_id='<your folder id>', domain='your company', token='<your token>', user='<your user>'): """ Uploads the file to specific folder on Bitrix Disk. Bitrix REST API doc: https://dev.1c-bitrix.ru/rest_help/disk/folder/disk_folder_uploadfile.php Create a token with: https://{domain}.bitrix24.ru/devops/edit/in-hook/ :param file_to_upload: :param domain: :param token: Disk access token. :param folder_id: Upload folder ID. :param user: Bitrix user ID :return: 'uploadUrl': str, 'field': str. Check Bitrix doc. """ disk_url = f'https://{domain}.bitrix24.ru/rest/{user}/{token}/' upload_url_method = 'disk.folder.uploadFile' upload_url_response = requests.get( disk_url + upload_url_method, { 'id': folder_id, 'generateUniqueName': True } ).json() # get uploading URL and param value upload_url = upload_url_response['result']['uploadUrl'] param = upload_url_response['result']['field'] # extract file content with open(file_to_upload, 'rb') as f: content = f.read() f.close() # uploading file to disk payload = {param: [file_to_upload, content]} r = requests.post(upload_url, files=payload) return r.json() |