AWS S3の事前署名されたアップロード:サーバーはアップロードが完了したことをどのように検証できますか?

ジェイドS

現在、これはデータフローの流れです。

  1. ユーザーはアプリサーバーからS3の事前署名された投稿を取得します
  2. ユーザーがドキュメントをS3にアップロードします
  3. 成功すると、ブラウザアプリはPOSTをアプリサーバーに送信し、アップロードが完了したことを通知します
  4. アプリサーバーは、ファイルアップロードメタデータ(S3キー、URLなど)を含むデータベースエントリを追加します

ステップ3でPOSTリクエストを検証して、ファイルが実際にアップロードされたことを確認する方法があるかどうか疑問に思っています(そして、アップロードされていないファイルのデータベースエントリを作成していません)。

それを行う方法はありますか?

今のところ、私が考えることができるのは、ステップ3のすべてのPOSTリクエストの後にアプリサーバーからS3 APIにクエリを実行して、ドキュメントがPOSTリクエストに記載されている場所にあることを確認することだけです。もっと良い方法はありますか?

マイケル-sqlbot

success_action_redirectフォームにURLを追加すると、アップロードが完了したときにS3がブラウザをサーバーにリダイレクトします。サーバーがこのURLにアクセスしたことを確認すると、アップロードが成功したことを確認できます。もちろん、特定のアップロードに合わせて調整できるように、URLには何らかの一意の識別子が含まれている必要があります。

http://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPOST.html

間違ったタイミングでエラーが発生し、アップロードが成功したにもかかわらずブラウザがリダイレクトを追跡できない可能性がありますが、リダイレクトURLが成功しなかった場合は、アップロードが成功したためにのみ発生するはずです。

さらに、お気づきのとおり、S3には、アップロードが完了したときに発生する可能性のある内部コールバックイベントがあります。

Amazon S3のHTTPアップロード機能はWebフックスタイルのコールバックをサポートしていますか?

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

Related 関連記事

ホットタグ

アーカイブ