2008-10-09 9 views
4

이동 중에 오디오 파일을 사이트에 업로드 한 다음 ffmpeg를 사용하여 다양한 형식으로 변환 할 수있는 음악 사이트를 개발해야만 사람들이 다운로드 할 수있었습니다 업로드 한 오디오 파일을 구입 한 후 tmp 파일이 생성되어 다운로드 위치에 저장되며 각 다운로드 인스턴스에 대해서만 유효하므로 tmp 파일이 삭제됩니다.업로드 된 파일 (사운드, 사진 및 비디오) 저장 위치

이제 프로젝트를 다시 방문하고 있습니다. 사진과 비디오를 업로드 컨텐트로 추가해야합니다. 내가 파일을 저장하기위한 가장 좋은 방법을 찾으려면

,

옵션 1 : 폴더에 파일을 저장하고 데이터베이스를 참조

옵션 2 : (데이터베이스에서 실제 파일을 저장 mysql)을 blob로 저장한다.

나는이 아이디어로 각 방법의 보안 함의와 내가 계산하지 못한 다른 문제를 고려하고있다.

답변

12

이 이전 StackOverflow 질문 Storing images in a database, Yea or nay?을 참조하십시오.

이 질문은 모든 대형 바이너리 콘텐츠 미디어 파일과 관련이 있지만 이미지 및 비디오에 관해 언급했음을 알고 있습니다.

파일 시스템의 이미지에 파일 경로를 저장하는 것이 아니라 실제 이미지를 저장하는 것이 최선의 방법이라고 생각됩니다.

3

나는 디스크에 직접 파일을 저장하고 ID/URL 만 가지고있는 데이터베이스를 저장하려고한다.

큰 파일 (이진 파일 일 수 있음)에 액세스하는이 방법은 PHP/데이터베이스 작업을 필요로하지 않으며 웹 서버가 직접 수행합니다.
원하는 경우 다른 서버로 파일을 이동하는 것이 더 쉬울 것입니다.

실제로 데이터베이스에 저장하는 것이 내가 볼 수있는 유일한 단점은 백업이 더 쉽다는 것입니다. 어쨌든 DB를 백업하고 싶다면 모든 데이터를 한 곳에서 가져올 수 있고 각 백업이 꽉 찼는 지 확인할 수 있습니다 즉 데이터베이스 엔트리에 사용되지 않는 파일이없고 데이터베이스에 아무 것도 가리 키지 않는 이미지 ID가 없다.

1

나는 Windows Forms 애플리케이션의 백엔드로 similar question using Oracle을 요청했다. .

정말 대답은 파일 백업 및 복원에 대한 요구 사항입니다. 그 요구 사항이 중요하다면 데이터베이스를 사용하는 것이 더 쉬워 질 것입니다. (어쨌든 데이터베이스를 백업 할 때, 맞습니까?) :

4

파일로 저장하고 위치를 데이터베이스에 저장하는 것이 좋습니다.

데이터베이스의 파일을 저장하면 더 많은 리소스가 필요하며 데이터베이스 백업/복원 속도가 느려집니다. 데이터베이스 덤프를 수행 할 때마다 많은 비디오를 전송해야합니까? 파일 시스템은 파일을 디칭하는 데 아주 잘 작동하며 매우 쉽게 백업/동기화 할 수 있습니다.

4

나는 데이터베이스 옵션으로 갈 것이다. 나는 수많은 프로젝트에서 사용했는데, 100 + GB보다 큰 일부 프로젝트에서 사용했습니다. 스토리지 구현이 중요하며 성능을 제대로 설계하지 않으면 처벌됩니다.좋은 구현 아이디어에 대한 예제는 this을 참조하십시오.
데이터베이스 저장소는 더 많은 확장 성과 보안을 제공합니다.

+0

보다 간단하고 손상이나 오류가 적습니다. – Rolf