Загрузка ресурса релиза на Github приводит к повреждению файла - PullRequest
1 голос
/ 10 января 2020

Я пытаюсь автоматизировать наш процесс выпуска 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'
}

Спасибо

...