파일 시스템 과부하를 탈출루비 : 폴더 이름에 분할 해시
f6f6c3408e67bf6473d65de172f0e5da.jpg
파일 이름
에서 폴더 f6/f6/c3/40/8e/67/bf/64/73/d6/5d/e1/72/f0/e5/da.jpg
의 구조를 만드는 방법
파일 시스템 과부하를 탈출루비 : 폴더 이름에 분할 해시
f6f6c3408e67bf6473d65de172f0e5da.jpg
파일 이름
에서 폴더 f6/f6/c3/40/8e/67/bf/64/73/d6/5d/e1/72/f0/e5/da.jpg
의 구조를 만드는 방법
이 그것을 수행해야합니다
'f6f6c3408e67bf6473d65de172f0e5da.jpg'.sub /(.*)(\..*)/ do
filename, extension = $1, $2
filename.scan(/../).join('/') + extension
end
잠재적 인 성능 문제를 염두에 두십시오. 이 부분이 중요하다면 regexps와 임시 배열을 포함하지 않는 다른 솔루션을 고려하십시오. – detunized
git
과 같은 시스템을 따르지 않는 이유는 무엇입니까? d는 처음 두 문자를 추출하여 디렉토리를 만들고 그 안에 파일을 넣습니다. 이렇게 많은 디렉토리를 만드는 것은 무의미한 것으로 보이고 성능에 영향을 미칠 수 있습니다. 파일 시스템의 비효율을 피하기 위해 git
과 같은 시스템에서 작동하는 경우에도 작동합니다. 물론 이러한 접근 방식을 따르는 경우에도 구현이 매우 간단해질 것입니다.
directory,filename = filename[0..1],filename[2..-1]
이러한 패턴을 사용하면 더 많은 파일/시스템 과부하를 만들 수 있습니다. :) – yazu
왜? 논쟁? –