Amazon S3 サーバーに画像を保存する iOS アプリを開発しています。残念ながら、サーバーの所有者は私に自分の秘密鍵を教えたくないのです。代わりに、彼は、ファイルのアップロードに使用できるという署名を生成して提供してくれます。
問題は、それを実行する方法が見つからないことです。特に、Amazon S3 のサンプル「S3Uploader」では。
それについて何か考えはありますか?
前もって感謝します
秘密鍵は署名の計算にのみ必要なので、すでに署名がある場合は必要ありません。ただし、アクセスキーIDが必要です(Amazonが署名の検証に使用する秘密キーを認識できるようにするため)。
iOS sdkのドキュメントをざっと見てみましたが、署名の計算プロセスを短縮する方法を提供しているようには見えません。ただし、ファイルのアップロードは簡単です。PUTリクエストを行うだけです。
PUT /ObjectName HTTP/1.1
Host: BucketName.s3.amazonaws.com
Date: date
Authorization: signatureValue
Content-Length: 1234
ドキュメントで使用できる追加のヘッダーの詳細があります。
もう1つのワークフローは、署名値を提供する代わりに、リモートサービスがamazon STS apiを使用して、指定されたバケットへのファイルのアップロードのみを許可された一時的なクレデンシャルを返すことができることです。このルートを使用すると、amazonが提供するSDKを使用できるようになります。