2011-07-29 2 views
0

가능한 중복 : 이상 디렉토리 경로/이름과 URL의의 단점은 LAMP 사이트에 무엇
What are the downsides of longer directory paths/names and URL's on a LAMP site?LAMP 사이트에서 긴 디렉토리 경로/이름과 URL을 사용할 때의 단점은 무엇입니까?

?

가능한 한 효율적으로 내 사이트에 이미지를 정리하려고하는데 많은 중첩 된 디렉토리를 사용하여 서브 디렉토리에 1,000 개 이상의 하위 디렉토리가 없어 유지 관리가 쉽습니다. 많은 사용자가 사용할 수 있습니다. 최악의 시나리오에서

는 이미지는이처럼 보이는 뭔가를 저장됩니다 :
./images/76/543/7654321/640/1.jpg 

는 심각한 단점이 있습니까 많은 하위 디렉토리 대 같은 간단한 무언가 데 :

./i/a7/c3/5e.jpg 

서버가 파고 들어야 할 서브 디렉토리가 많을수록 길어질수록 길어지며 디렉토리 구조가 길수록 URL이 길어질수록 HREF가 차지할 공간이 많아집니다. HTML 문서. 그러나 얼마나 많은 차이가있을 것인가? 우리가 수백만 명의 사용자로 확장 할 수 있다고 가정 해 봅시다. (고려해야 할 사항 (짧은 디렉토리 구조 대 긴 디렉토리 구조) 또는 더 긴 디렉토리 구조를 사용하는 것이 좋습니다.

감사합니다.

답변

0

귀하의 필요와 경험에 따라 "성장"하는 스토리지를 사용할 수 있습니다.

예를 들어 콘텐츠에 SHA1을 사용하는 등 이미지 자체를 기반으로 이미지의 파일 이름을 생성했다고 가정 해 보겠습니다. b494ad9057e09277fd02e811bb8e86b322a5166b.jpg이 이름 일 수 있습니다.

이미지는 파일 시스템의 "images"디렉토리에 저장됩니다.

파일에 액세스하는 데 사용하는 URI는 항상 images/b494ad9057e09277fd02e811bb8e86b322a5166b.jpg입니다.

이제 마술은 아파치의 mod_rewrite 내부에서 발생합니다. 요청 된 리소스는 원하는대로 분할 할 수 있습니다 (예 : images/b494ad9057e09277fd02/e811bb8e86b322a5166b.jpg). 해시의 20 번째 문자 다음에 슬래시를 적어 두었다가 거기에서로드됩니다.

파일 시스템 전문가의 답변을 얻은 후에는 URI를 분할하는 방법을 변경하고 모든 파일을 새로운 예상 위치로 이동할 수 있습니다. 디렉토리를 가로 질러 "원래"파일 이름을 항상 빌드 할 수 있기 때문입니다 계층.

또한 해시가 양호한 해시는 해시에 "균등하게 분산 된 문자"를 만들어야하므로 디렉토리가 균형 적으로 채워져야합니다.

+0

이동하기 전에 하나의 이미지 디렉토리에 많은 파일이있는 경우 inode 테이블을 최대한으로 조심해야합니다. –

+0

Inode는 디렉토리가 아닌 파티션 (파일 시스템) 당 있습니다. 따라서 전체 디렉토리 계층 구조가 하나의 파티션에있는 한 더 이상의 구조적 디렉토리가 없으면 구조 디렉토리가 HAVING 인 것보다 inode 수가 더 좋습니다. – Shi

관련 문제