Ich versuche derzeit, eine Anwendung zum Hochladen von Dateien in einen Amazon S3-Bucket mit cURL und C++ zu entwickeln. Nach sorgfältiger Lektüre des S3-Entwicklerleitfadens habe ich begonnen, meine Anwendung mit cURL zu implementieren und den Header zu bilden, wie im Entwicklerleitfaden beschrieben, und nach vielen Versuchen und Fehlern, um den besten Weg zur Erstellung der S3-Signatur zu bestimmen, stehe ich nun vor einem 501-Fehler . Der empfangene Header weist darauf hin, dass die von mir verwendete Methode nicht implementiert ist. Ich bin nicht sicher, wo ich falsch bin, aber hier ist der HTTP-Header, die ich auf amazon bin das Senden:Hochladen auf Amazon S3 mit cURL/libcurl
PUT /test1.txt HTTP/1.1
Accept: */*
Transfer-Encoding: chunked
Content-Type: text/plain
Content-Length: 29
Host: [BucketName].s3.amazonaws.com
Date: [Date]
Authorization: AWS [Access Key ID]:[Signature]
Expect: 100-continue
ich den Bucket-Name, Zugriffsschlüssel-ID und Unterschrift aus Sicherheitsgründen abgeschnitten haben.
Ich bin mir nicht sicher, was ich falsch mache, aber ich denke, dass der Fehler wegen der Felder Accept und Transfer-Encoding (nicht wirklich sicher) generiert wird. Also kann mir jemand sagen, was ich falsch mache oder warum ich bin immer ein 501.
Gelöst: fehlte eine CURLOPT für die Dateigröße in meinem Code und jetzt ist alles perfekt funktioniert –