2016-09-21 2 views
0

pre-signed post from heroku을 사용하여 내 iOS 앱에서 S3으로 직접 업로드하려고합니다. qr647bMEA9M8LeBVqkJLcvEIO4g=heroku S3 사전 서명 된 게시물 및 S3 요청 서명

와 AWS에서 정책

wtLepKMeghI3rt1UeikLoQcNTYtMDktMTBUMTc6NDE6MTJaIiwgImNvbmRpdGlvbnMiOiBbeyJhY2wiOiAicHVibGljLXJlYWQifSwgeyJDb250ZW50LVR5cGUiOiAibTRhIn0sIHsiYnVja2V0IjogImZ1eZEaJKYzeDgZwz3lOPtys5B0MigIwImv2OpQm3ylP==

:

{'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='}}}

당신이 볼 수 있듯이이있다 서명이 : Heroku가 내 빠른 응용 프로그램에 다음을 반환 documentation, 그들이 사용하는 서명 예제 (아래)는 Heroku에서 반환 된 서명보다 훨씬 더 많은 문자를 가지고 있습니다.

Signature=5d672d79c15b13162d9279b0855cfba6789a8edb4c82c400e06b5924a6f2b5d7

는 아마존이 요청에 서명을 요청하는 것보다 Heroku가 다른에서 제공하는 서명인가? Heroku에서 반환되는 서명을 사용한다고 생각하지 않습니까?

답변

1

5d672d79c15b13162d9279b0855cfba6789a8edb4c82c400e06b5924a6f2b5d7 16 진수이고 qr647bMEA9M8LeBVqkJLcvEIO4g=는 Base64 인코딩이고 hex 16 개 문자를 사용하면서 base64 인코딩 64 개 문자를 사용하기 때문에 헥스보다 짧다.

AWS는 서명을 base64 인코딩으로 예상합니다. 그래서 Heroku가 당신에게 돌려주는 것은 정확합니다. 어떤 문제가 있습니까?

+0

처음으로 S3에 서명 된 요청을하려고하는데 연결을 할 수 없으므로 문서를보고 잘못된 것이 있는지 확인하기로 결정했습니다. 현재 http 오류 코드 400이 표시됩니다. 필요한 값을 올바른 형식으로 제공하고 있는지 확실하지 않습니다. – Brosef

+0

400은 무엇이든 의미 할 수 있습니다. 응답에는 400을 반환하는 이유에 대한 자세한 정보가 있어야합니다. – helloV

관련 문제