사용자가 파일을 업로드 할 수있는 웹 사이트를 구현 중입니다. 앞으로 업로드 파일을 쉽게 관리 할 수 있도록 업로드 폴더가 어떻게 구성되어야하는지 궁금합니다. 다른 사용자에게 다른 하위 폴더를 제공해야합니까 (예 : user1의 경우 upload/user1, user2의 경우/user2 등). 아니면 모두 같은 폴더에 저장해야합니까? 업로드 한 파일의 이름을 변경해야합니까? (많은 웹 사이트에서이 작업을 수행하고 있음을 알고 있습니다.)업로드 된 파일의 폴더 구조
답변
BLOB을 사용하지 않고 사용자가 임의의 수의 이미지를 가지고있는 경우 하위 폴더를 사용해야합니다. 예를 들어 사용자 ID 뒤에 이름이 지정된 하위 폴더를 만들 수 있습니다. 이 이유 중 하나는 폴더에 많은 파일이 포함되어 있으면 지정된 이름의 파일을 찾는 데 더 많은 시간이 걸리므로 액세스 시간이 늘어납니다. 파일 이름이 중복되어 이름이 중복되지 않도록 파일의 이름을 바꿀 수도 있습니다. 새로 생성 된 이름을 DB에 저장하는 것을 잊지 마십시오.
이름을 변경하면 로그인하지 않은 사람에게 "숨길"때 유용합니다. 원래 이름을 DB에 저장하십시오.
또한 항상 BLOB 유형의 SQL 테이블에 저장할 수 있습니다. 여러 GB가 될 수 있으며 파일 이름, 사용자 이름 등을 연관시킬 수 있습니다.
동료가 DB를 불필요하게 확대 할 수 있으므로 BLOB 유형을 사용해서는 안된다는 말을 한 번 전했다. 어쨌든 업로드 된 파일의 위치에 대해 여전히 혼란 스럽긴하지만 파일 이름 바꾸기의 목적에 대한 답변을 주셔서 감사합니다 –
DB를 확대 할 것이지만 파일을 사용하면 디렉토리가 커질 수 있습니다. 그것은 천천히 그것을하지 않습니다. – DanRedux
- 1. Django에서 업로드 된 파일의 동적 대상 폴더
- 2. 업로드 된 파일의 크기
- 3. 폴더 구조
- 4. 업로드 된 파일의 코드 실행
- 5. 업로드 된 파일의 데이터 읽기
- 6. 업로드 된 파일의 여러 작업
- 7. 업로드 된 파일의 파일 이름
- 8. NoSQL 스키마 폴더 구조
- 9. 배치 파일의 폴더 이름
- 10. Jquery 폴더 구조
- 11. 폴더 계층 구조 탐색
- 12. 안드로이드 폴더 구조
- 13. 레일 구조 폴더
- 14. 이오닉 Zip 폴더 구조
- 15. Bazaar 폴더 구조 조정
- 16. 까다로운 폴더 구조 문제
- 17. Visual Studio 폴더 구조
- 18. 폴더 보안 솔루션 업로드
- 19. ImageMagick을 사용하여 업로드 된 파일의 이름 바꾸기
- 20. ListView에 배치 된 파일의 폴더 만들기
- 21. Rails 폴더 구조 이전 버전의 구조 비교
- 22. InstallShield 제품군 프로젝트의 폴더 구조
- 23. 폴더 구조 내의 연결된 파일
- 24. 올바른 경로 업로드 폴더
- 25. 코코아로 폴더 업로드
- 26. 업로드 tmp 폴더
- 27. PHP 파일 업로드 폴더
- 28. Wordpress 업로드 폴더
- 29. 서버에 업로드 된 파일의 유효성 확인
- 30. Ajaxplorer 업로드 된 파일의 권한이 올바르지 않습니다.
다음과 같이 업로드 폴더를 구성하라는 해결책을 찾았습니다. 메인 폴더는 '업로드'로 3 단계로 구성되어 있습니다 (예 :'upload/0/0/file.jpg'). 'upload/0/0' 폴더가 1024 개의 파일로 채워지면 자동으로'upload/0/1' 폴더가 생성됩니다. 'upload/0' 폴더는 1024 개의 하위 폴더 ('upload/0/0' ~'upload/0/1023')를 가질 수 있습니다. 비슷하게,'upload' 폴더는 1024 개의 하위 폴더를 가질 수 있습니다. 따라서 최대 2 개의 30 개의 파일을 저장할 수 있습니다. 매일 사용자가 총 1024 개의 파일을 업로드하면 공간을 다 사용하는 데 2873 년이 걸립니다. 그것이 실현 가능하다고 생각하십니까? –
나는 이것을 다음과 같이하는 것이 더 나을 것이라고 생각한다. 첫 번째 레벨의 서브 디렉토리의 이름을 사용자의 ID로 지정한다. 다음 단계는 사용자가 업로드 한 각 이미지에 고유 ID를 할당하는 경우에만 유효합니다. 그런 다음 두 번째 수준의 하위 디렉토리의 이름을 strval ($ imgId % DIVISOR_CHOSEN_BY_YOU)으로 지정할 수 있습니다. 어떤 경우에는 각 하위 디렉토리의 이미지 수가 줄어들 수도 있습니다. 나는이 점에있어서 전문가는 아니지만 ... – Exander