В рамках перехода моей команды от ручной загрузки к автоматической c загрузки я пытаюсь реализовать процесс замены apk в Amazon Appsotre. Я написал код на основе примера, который Amazon опубликовал для этого потока.
'' '
# Get the current list of APKs
get_apks_path = f"v1/applications/{app_id}/edits/{edit_id}/apks"
get_apks_url = '/'.join([BASE_URL, get_apks_path])
apks = requests.get(get_apks_url, headers=token)
apks_json = apks.json()
if 'Message' in apks_json:
print(apks.content)
sys.exit(1)
else:
if apks_json.headers['ETag'] is None:
print("No Etag found")
sys.exit(1)
else:
etag = apks.headers['Etag']
firstapk = apks_json[0]
apk_id = firstapk['id']
replace_apk_path = f"v1/applications/{app_id}/edits/{edit_id}/apks/{apk_id}/replace"
# Open the apk file on your local machine
local_apk = open(apk_location, 'rb').read()
replace_apk_url = '/'.join([BASE_URL, replace_apk_path])
all_headers = {
'Content-Type': 'application/vnd.android.package-archive',
'If-Match': etag
}
all_headers.update(token)
replace_apk_response = requests.put(replace_apk_url, data=local_apk, headers=all_headers)
print(replace_apk_response.content)
' ''
Проблема в том, что когда я читая ответ на запрос GET, я не вижу ETag, который является обязательным для завершения потока. Я что-то пропустил? Ссылки для объяснения об ETag и пример: https://developer.amazon.com/docs/app-submission-api/flows.html#about -etags https://developer.amazon.com/docs/app-submission-api/python-example.html