Я пытаюсь автоматизировать наш процесс выпуска Github, и как часть этого я загружаю артефакты выпуска в выпуск Github. Артефакт, который я загружаю - это файл tar.gz
. Я использую следующий код python3 .7 для загрузки артефакта:
with open(filepath, 'rb') as file:
response = self._request_session.post(endpoint,
params={'name': local_artifact.filename},
files={local_artifact.filename: file})
Код статуса ответа, который я получаю, равен 201, что ожидается в соответствии с Github загрузить релизный актив api документация .
Однако, когда я загружаю артефакты с Github, я не могу ни проверить sha256 файла, ни открыть архив. При запуске tar -zxvf test.tar.gz
я получаю следующую ошибку:
tar: Unrecognized archive format
tar: Error exit delayed from previous errors.
Я уже проверил файл на локальном, который я загружаю, и он работает нормально.
Может кто-нибудь, пожалуйста, помогите мне в Выявление проблемы здесь?
Вот текст ответа, который я получаю после загрузки файла:
{
"url":"https://api.github.com/repos/c2tarun/upload_test_repo/releases/assets/17244134",
"id":17244134,
"node_id":"MDEyOlJlbGVhc2VBc3NldDE3MjQ0MTM0",
"name":"test.tar.gz",
"label":"",
"uploader":{
"login":"c2tarun",
"id":1129670,
...truncating for readability.
"type":"User",
"site_admin":false
},
"content_type":"multipart/form-data; boundary=1a13638ee5f5f57d303508eea4e64211",
"state":"uploaded",
"size":11969682,
"download_count":0,
"created_at":"2020-01-09T23:49:54Z",
"updated_at":"2020-01-09T23:50:18Z",
"browser_download_url":"https://github.com/c2tarun/upload_test_repo/releases/download/untagged-1baa5c7dd7f5a8d506cc/test.tar.gz"
}
Интересное обновление: загрузка одного и того же файла несколько раз дает мне разные значения ша при загрузке.
Еще обновление: я подумал, что, возможно, я предоставляю неправильный заголовок Content-Type
для файла tar.gz
, поэтому я создал zip-файл и использовал Content-Type
как application/zip
. Я все еще вижу ту же проблему. Вот мои заголовки запроса для zip-файла:
{
'User-Agent':'python-requests/2.22.0',
'Accept-Encoding':'gzip, deflate',
'Accept':'*/*',
'Connection':'keep-alive',
'Content-Type':'application/zip',
'Content-Length':'332',
'Authorization':'Basic xxxxxxxxx'
}
Спасибо