InvenTree API remote_image beheben: Server responded with invalid status code: 403
Problem:
Beim Versuch, eine Company über die InvenTree-API zu erstellen, sehen Sie eine Fehlermeldung wie
requests.exceptions.HTTPError: {'detail': 'Error occurred during API request', 'url': 'https://inventree.techoverflow.net/api/company/', 'method': 'POST', 'status_code': 400, 'body': '{"remote_image":["Server responded with invalid status code: 403"]}', 'headers': {'AUTHORIZATION': 'Token 340fdf063d5433b83bc37c50a4b52ee2f246021b'}, 'params': {'format': 'json'}, 'data': {'name': 'DigiKey', 'website': 'https://www.digikey.de/', 'remote_image': 'https://www.digikey.de/-/media/Images/Header/logo_dk.png', 'description': 'Test', 'is_manufacturer': False, 'is_supplier': True, 'is_customer': False, 'currency': 'EUR'}}Lösung
Das Kernproblem hier ist:
{"remote_image":["Server responded with invalid status code: 403"]}InvenTree versucht, die remote_image-URL herunterzuladen – aber diese URL kann nicht heruntergeladen werden und der Upstream-Server (digikey.de in diesem Fall) generiert eine 403-Antwort. Dies ist oft der Fall, wenn eine URL nur mit korrekten Referer-Headern oder anderen Headern, die auf einen bestimmten Wert gesetzt sind, heruntergeladen werden kann.
Um dieses Problem zu beheben, ändern Sie die remote_image-URL zu einer Bild-URL, die korrekt abgerufen werden kann.
Manchmal kann dieses Problem auch auftreten, wenn die IP-Adresse des InvenTree-Servers vom Server, der das Bild bereitstellt, blockiert wird. Dies kann leicht herausgefunden werden, indem man versucht, die angegebene Bild-URL vom Server, auf dem InvenTree läuft, mit wget [URL] herunterzuladen.