2016-11-02 3 views
0

Я использую auten на основе токенов для Restful API на Laravel 5.1. Я использую S3 в качестве хранилища файлов для загрузки пользовательских изображений. Я хотел бы ограничить доступ только к пользователю, который загрузил изображение (ы). Они должны иметь возможность просматривать изображения в мобильном API. Есть ли способ сделать это с Laravel 5.1 и S3, не создавая общедоступную директорию S3?Laravel 5.1 S3 Безопасный доступ к изображениям через Restful API

ответ

2

Вы не сможете напрямую связаться с запрашивающим и S3, но вы можете включить SDK клиента S3 в свой проект Laravel, который действует как посредник.

Ваш проект Laravel будет иметь API, который может получать запросы на выборку ресурса, и он должен будет выполнить аутентификацию и авторизацию. Для этого также потребуется сопоставление от user_ids к списку URL-адресов/имен ресурсов, к которым пользователь имеет доступ. Что-то вроде DynamoDB в порядке.

В случае успеха, вы могли бы сделать одну из двух вещей:

  1. Извлекает объект и вернуть его непосредственно в запрашивающей, это, вероятно, самый безопасный и самый простой.

  2. Получите URL-адрес (http://docs.aws.amazon.com/AmazonS3/latest/dev/ShareObjectPreSignedURL.html), чтобы запросчик мог получить ресурс отдельно. Это полезно для больших объектов, таких как видео, но любой, у кого есть доступ к URL-адресу в середине, например прокси-серверу, также может иметь доступ к ресурсу.

Смежные вопросы