2016-11-02 17 views
0

私は、Laravel 5.1のRestful APIにトークンベースの認証を使用しています。私はS3をファイルストレージとして使用して、ユーザー固有の画像をアップロードしています。私は、画像をアップロードしたユーザーだけにアクセスを制限したいと思います。彼らは、モバイルAPIの画像を見ることができるはずです。 S3ディレクトリを公開せずにLaravel 5.1とS3でそれを行う方法はありますか?Laravel 5.1 S3安心したAPIによる安全な画像アクセス

答えて

2

リクエスタとS3で直接行うことはできませんが、S3クライアントSDKを仲介者として機能するLaravelプロジェクトに組み込むことができます。

あなたのLaravelプロジェクトには、リソースを取得するリクエストを受け取ることができるAPIがあり、認証と承認を行う必要があります。 これには、user_idsから、ユーザーがアクセスできるリソースのURL /名前のリストへのマッピングも必要です。 DynamoDBのようなものは問題ありません。

成功した場合は、次の2つのいずれかを実行できます。

  1. は、オブジェクトを取得し、依頼者に直接それを返す、これはおそらく最も安全で最も簡単です。

  2. リクエスタがリソースを個別にフェッチできるように署名付きURL(http://docs.aws.amazon.com/AmazonS3/latest/dev/ShareObjectPreSignedURL.html)を取得します。これはビデオなどの大きなオブジェクトには便利ですが、プロキシサーバーなどの中間のURLにアクセスできるユーザーは、そのリソースにもアクセスできます。

関連する問題