2016-11-02 2 views
0

Laravel 5.1의 안정 API에 토큰 기반 인증을 사용하고 있습니다. S3를 파일 저장소로 사용하여 사용자 특정 이미지를 업로드하고 있습니다. 이미지를 업로드 한 사용자에게만 액세스를 제한하고 싶습니다. 그들은 모바일 API에서 이미지를 볼 수 있어야합니다. S3 디렉토리를 공개하지 않고 Laravel 5.1 및 S3을 사용하여이를 수행 할 수있는 방법이 있습니까?Laravel 5.1 S3 안정적인 API를 통한 보안 이미지 액세스

답변

2

요청자와 S3에서는 직접 할 수 없지만 중개자 역할을하는 Laravel 프로젝트에 S3 클라이언트 SDK를 통합 할 수 있습니다.

Laravel 프로젝트에는 리소스를 가져 오기위한 요청을받을 수있는 API가 있으며 인증 및 권한 부여가 필요합니다. 이렇게하려면 user_ids에서 사용자가 액세스 할 수있는 리소스의 URL/이름 목록에 매핑해야합니다. DynamoDB와 같은 것이 좋습니다.

성공하면, 당신은 두 가지 중 하나를 수행 할 수 :

  1. 개체를 가져 오기 및 요청자에게 직접 반환, 이것은 아마도 가장 안전하고 가장 쉬운 방법입니다.

  2. 요청자가 리소스를 별도로 가져올 수 있도록 서명 된 URL (http://docs.aws.amazon.com/AmazonS3/latest/dev/ShareObjectPreSignedURL.html)을 가져옵니다. 이 기능은 동영상과 같은 대형 객체에 유용하지만 프록시 서버와 같이 중간에있는 URL에 액세스 할 수있는 사용자는 누구나 해당 리소스에 액세스 할 수 있습니다.