Ich habe diese Frage bereits im AWS Developer Forum gestellt, ohne eine Antwort zu erhalten. Also hier geht:Eigene Mediendateien können nach AWS S3-Download mit libCurl + -Headern nicht geöffnet werden
Ich lade meine eigenen Mediendateien aus meinem eigenen AWS S3-Bucket mit meiner eigenen libCurl C++ - Anwendung.
Wenn ich eine Datei als öffentlich markieren und sie mit einer einfachen libCurl GET-Anfrage (keine zusätzlichen Header) herunterladen, funktioniert die heruntergeladene Datei einwandfrei. Wenn ich jedoch genau die gleiche Datei wie private markieren und Kopfzeilen zur GET-Anfrage hinzufügen (Host, x-amz-Datum, x-amz-content-sha256 und Autorisierungs-Header), kann ich die heruntergeladene Datei nicht öffnen.
Meine Frage ist: Warum ändert das Hinzufügen von Kopfzeilen zur GET-Anfrage die heruntergeladene Datei? Und was kann ich tun, um das zu beheben?
UPDATE: Mit einem Hex-Editor habe ich herausgefunden, dass die HTTP-Antwort am Anfang in die empfangene Datei geschrieben wird. Wie kann ich das verhindern?
Vielen Dank im Voraus!
Es sollte nicht. Was Sie tun, ist sehr Routine ... aber, wie machen Sie die Datei privat/öffentlich? Einfach in der Konsole umschalten? (Da sollte das auch gut sein ...) Haben Sie die resultierenden Dateien mit einem Hex-Editor untersucht? –
Vielen Dank @ Michael-sqlbot für den Vorschlag, einen Hex-Editor zu verwenden! Es scheint, dass die HTTP-Antwort am Anfang in die empfangene Mediendatei geschrieben wird. Das erklärt, warum ich diese Dateien nicht benutzen kann ... Aber warum ist das und wie kann ich das verhindern? – Chrueschschie
Und ja, ich bearbeite einfach die Eigenschaften der Dateien in der S3 Management Console, um sie privat/öffentlich zu machen. Sie sind jetzt öffentlich zum Testen, aber auf lange Sicht müssen sie privat sein. – Chrueschschie