Ich versuche, einen direkten Upload von meiner iOS-App auf S3 mit einem pre-signed post from heroku. Heroku gibt die folgenden meine schnelle App:heroku S3 vor-signierten Post und S3 Anfrage Signatur
{'url': u'https://bucketname.s3.amazonaws.com/filename', 'data': {'url': u'https://bucketname.s3.amazonaws.com/', 'fields': {'Content-Type': 'm4a', 'key': u'filename', 'AWSAccessKeyId': u'XXXXXXXXXXXX', 'acl': 'public-read', 'policy': u'wtLepKMeghI3rt1UeikLoQcNTYtMDktMTBUMTc6NDE6MTJaIiwgImNvbmRpdGlvbnMiOiBbeyJhY2wiOiAicHVibGljLXJlYWQifSwgeyJDb250ZW50LVR5cGUiOiAibTRhIn0sIHsiYnVja2V0IjogImZ1eZEaJKYzeDgZwz3lOPtys5B0MigIwImv2OpQm3ylP==', 'signature': u'qr647bMEA9M8LeBVqkJLcvEIO4g='}}}
Wie Sie sehen können, gibt es eine Signatur, die ist: qr647bMEA9M8LeBVqkJLcvEIO4g=
und eine Politik
wtLepKMeghI3rt1UeikLoQcNTYtMDktMTBUMTc6NDE6MTJaIiwgImNvbmRpdGlvbnMiOiBbeyJhY2wiOiAicHVibGljLXJlYWQifSwgeyJDb250ZW50LVR5cGUiOiAibTRhIn0sIHsiYnVja2V0IjogImZ1eZEaJKYzeDgZwz3lOPtys5B0MigIwImv2OpQm3ylP==
In dem AWS documentation, das Signatur-Beispiel, das sie verwenden (unten) hat viel mehr Zeichen als die Signatur, die von Heroku
zurückgegeben wirdSignature=5d672d79c15b13162d9279b0855cfba6789a8edb4c82c400e06b5924a6f2b5d7
Ist die von Heroku anders vorgesehen Signatur als das, was für amazon bittet einen Antrag zu unterschreiben? Soll ich nicht die Signatur verwenden, die von Heroku zurückgegeben wird?
Ich versuche zum ersten Mal eine signierte Anfrage an S3 zu senden und kann keine Verbindung herstellen. Deshalb entschied ich mich, in der Dokumentation nachzusehen, ob ich etwas falsch mache. Ich erhalte derzeit einen HTTP-Fehlercode 400. Ich bin mir nicht sicher, ob ich die erforderlichen Werte im richtigen Format zur Verfügung stelle. – Brosef
400 kann alles bedeuten. Die Antwort sollte mehr Informationen darüber haben, warum sie 400 zurückgibt. – helloV