레일 프로젝트가 있습니다. 내 프로젝트에서 나는 서버 (레일 3 + 클립 + devise + cancan)에 이미지를로드한다. 파일에 대한 액세스를 제한하고 싶습니다 (예 : 원래 이미지는 관리자 만 볼 수 있습니다). 어떻게해야합니까?레일 앱에서 이미지 액세스 제한
3
A
답변
4
데이터베이스의 특성으로 제한하는 경우 한 가지 방법은 컨트롤러를 통해 이미지를 제공하는 것입니다. 가장 실적이 좋은 것은 아니지만 안전합니다.
나는 이것을 시도하지 않은,하지만 당신은
/images/picture_of_mickey_mouse.png
같은 URL에서 이미지를 제공한다면 다음 파일 이름 속성으로 /images
에 응답하여 응용 프로그램의 경로를 만들 수 있으며, 컨트롤러를 통해 모든 이미지를 제공하십시오.
class ImagesController < ApplicationController
before_filter :authenticate_admin!, :only => [:show]
def show
send_file "/images/#{params[:filename]}", :disposition => 'inline'
end
end
당신은 다른 사용자가 서버에있는 파일을 다운로드 할 수있을 것이다, 그러나
params[:filename]
을 살균 있는지 확인하려면 것
! send_file
에
워드 프로세서 현재 위치 : http://apidock.com/rails/ActionController/DataStreaming/send_file
2
파일은 ActionDispatch::Static
로 처리됩니다. IMO의 가장 좋은 솔루션은 유사한 미들웨어 (Rails source code 기반)를 제공하지만 일부 인증은 ActionDispatch::Static
앞에 삽입해야합니다. 이것은 미들웨어에서 인증을하기 때문에 와덴 기반 솔루션 (예 : Devise)과 함께 작동합니다. 워든 (Warden) 후에 미들웨어를 설치하고 그 후에받은 평범한 평야 인 ActionDispatch::Static
이 실행되도록하십시오.
편집 : 주목할만한 한 가지 더. Nginx (나는 Apache와 다른 것들에 대해 잘 모르겠다)가 랙 스택에 요청을 전달하지 않고 모든 정적 파일을 자체적으로 제공하도록 구성되어 있다는 것은 생산 과정에서 흔히 볼 수 있습니다. 이 Nginx '기능을 해제해야 할 수도 있습니다.
관련 문제
- 1. wpf 앱에서 이미지 폴더에 액세스
- 2. 레일 3.2 액세스 공용 이미지
- 3. 레일 앱에서 git으로 푸시되지 않는 이미지
- 4. iphone 앱에서 반송파가있는 레일 앱으로 이미지 업로드
- 5. 레일 앱에서 엔진의 이미지 애셋을 제공하는 방법
- 6. 제한 레일
- 7. 액세스 제한 Github
- 8. 파일에 대한 액세스 제한
- 9. 액세스 제한 :
- 10. 앱에서 Drupal 내 JSON URL에 대한 액세스 제한
- 11. Ruby on Rails 앱에서 "destroy"기능에 대한 액세스 제한
- 12. 레일 이동의 조건부 제한
- 13. 제한 사항이있는 레일 경로
- 14. 레일 가입 제한
- 15. 레일 당 제한 GROUP
- 16. 레일 변경 근로자 제한?
- 17. MS 액세스 데이터 액세스 제한
- 18. fb 앱에서 벽에 게시물 제한
- 19. 안드로이드 이미지 크기 제한
- 20. 모바일 사파리의 이미지 크기 제한?
- 21. 이미지 그리기 이미지 애스펙트 제한
- 22. iOS 앱에서 데이터베이스 액세스
- 23. 앱에서 페이지에 액세스 하시겠습니까?
- 24. WCF 앱에서 SAPI 액세스
- 25. 다른 앱에서 데이터 액세스
- 26. 앱에서 iphone 연락처에 액세스
- 27. 데이터베이스에 대한 액세스 제한
- 28. 국가 별 액세스 제한
- 29. 클래스 라이브러리 액세스 제한
- 30. 서블릿에 대한 액세스 제한