FDFS... 6. 권한 제어

3576 단어 FastDFS
앞에서 nginx 지원 http 방식 으로 파일 에 접근 할 수 있 지만 모든 사람 이 이 파일 서버 에 직접 접근 할 수 있 기 때문에 권한 제 어 를 합 니 다.
FastdFS 의 권한 제 어 는 서버 에서 token 인증 을 시작 하 는 것 입 니 다. 클 라 이언 트 는 파일 이름, 현재 유 닉 스 타임 스탬프, 비밀 키 에 따라 token 을 가 져 오고 주소 에 token 인 자 를 가 져 오 면 http 방식 으로 파일 에 접근 할 수 있 습 니 다.
① 서버 에서 token 인증 오픈
  http.conf
# vim /etc/fdfs/http.conf

   true    token  
http.anti_steal.check_token=true

  token         (s)
http.anti_steal.token_ttl=1800

  ,         fastdfs.http_secret_key    
http.anti_steal.secret_key=FASTDFS1234567890

  token    ,     
http.anti_steal.token_check_fail=/ljzsg/fastdfs/page/403.html


서 비 스 를 다시 시작 하 는 것 을 기억 하 세 요.
② 클 라 이언 트 설정
클 라 이언 트 는 다음 과 같은 두 개의 인자 만 설정 하면 됩 니 다. 양쪽 키 는 일치 합 니 다.
# token      
fastdfs.http_anti_steal_token=true
#   
fastdfs.http_secret_key=FASTDFS1234567890

③ 클 라 이언 트 생 성 토 큰
파일 에 접근 하려 면 생 성 된 token 과 유 닉 스 시간 스탬프 를 가 져 가 야 하기 때문에 돌아 오 는 token 은 token 과 시간 스탬프 의 조합 입 니 다.
이후 token 을 주소 에 연결 하면 방문 할 수 있 습 니 다: file. ljzsg. com / group 1 / M00 / 00 / wKgzgFnkaXqAIfXyAAEoRmXZPp 878. jpeg? token = 078 d370098b03e9020b82c829c205e1f & ts = 1508141521
 1     /**
 2      *         token,       
 3      *
 4      * @param filepath      group1/M00/00/00/wKgzgFnkTPyAIAUGAAEoRmXZPp876.jpeg
 5      * @param httpSecretKey   
 6      * @return   token, : token=078d370098b03e9020b82c829c205e1f&ts=1508141521
 7      */
 8     public static String getToken(String filepath, String httpSecretKey){
 9         // unix seconds
10         int ts = (int) Instant.now().getEpochSecond();
11         // token
12         String token = "null";
13         try {
14             token = ProtoCommon.getToken(getFilename(filepath), ts, httpSecretKey);
15         } catch (UnsupportedEncodingException e) {
16             e.printStackTrace();
17         } catch (NoSuchAlgorithmException e) {
18             e.printStackTrace();
19         } catch (MyException e) {
20             e.printStackTrace();
21         }
22 
23         StringBuilder sb = new StringBuilder();
24         sb.append("token=").append(token);
25         sb.append("&ts=").append(ts);
26 
27         return sb.toString();
28     }


④ 주의사항
생 성 된 token 인증 이 통과 되 지 않 으 면 다음 두 가지 검 사 를 진행 하 십시오. A. token 생 성 함수 (ProtoCommon. getToken) 를 호출 하 는 지 확인 하 십시오. 전 달 된 파일 ID 에 group name 이 포함 되 어 있 지 않 습 니 다.전 달 된 파일 ID 형식: M00 / 00 / 00 / wKgzgFnkTPyAIAUGAAEoRmXZPp 876. jpeg
B. 서버 시간 이 기본적으로 일치 하 는 지 확인 하고 서버 시간 이 너무 차이 가 나 면 안 되 며 분 단계 까지 차이 가 나 지 않도록 주의 하 세 요.
⑤ 시스템 파일 의 프라이버시 가 높 으 면 fastdfs - client 가 제공 하 는 API 를 통 해 직접 접근 하면 되 며, Nginx 가 http 로 접근 하 는 것 을 설정 하지 않 아 도 된다.Nginx 를 설정 하 는 주요 목적 은 서버 의 파일 (예 를 들 어 그림) 에 빠르게 접근 하기 위 한 것 입 니 다. 권한 검증 을 추가 하려 면 클 라 이언 트 가 token 을 생 성 해 야 합 니 다. 큰 의미 가 없습니다.
문 제 는 여기 서 FastdFS 가 일부 자원 에 token 인증 을 어떻게 하고 일부 개방 하 는 지 찾 지 못 했다 는 것 이다.아 는 거 있 으 면 댓 글로 남 겨 주세요.
전송 주소: https://www.cnblogs.com/chiangchou/p/fastdfs.html#_label4_2

좋은 웹페이지 즐겨찾기