2011-12-01 2 views
0

사용자가 내 응용 프로그램에 이미지를 업로드 할 수 있도록하는 딜레마가 있습니다. 내 호스트는 무제한 저장 공간을 허용하지만 250k 개의 개별 파일 만 허용합니다. 저는 125k에 있는데 사용자가 이미지를 업로드 할 수있는 기능을 공개 할 계획입니다. 많은 양의 이미지가 업로드되기 시작하면 빠르게 할당량을 채울 수 있습니다. MySQL과 같은 데이터베이스에 저장하는 방법에 대해 생각했습니다. 이것은 실현 가능한 해결책입니까 아니면 단순한 바보입니까? 바보 일 경우 무료/저렴한 대체품은 무엇이 될까요?대용량의 이미지를 데이터베이스에 저장하는 것은 어리석은가요?

답변

1

예, 이미지 데이터를 DB에 저장하는 것은 어리석은 일입니다.
저장 용으로 Amazon S3과 같은 것을 사용합니다.

Jeff가 논의한 몇 년 전의 게시물은 CodingHorror입니다.

+0

내 최고의 옵션 같아. 그리고 그것은 저렴한 가격입니다. 대역폭 비용이 내 저장 장치만큼 문제가 될 것이라고 생각하지 않습니다. :피. 정말 고마워! – LordZardeck

+0

당신을 환영합니다! :) – tzaman

1

데이터베이스를 사용하는 것이 분명히 파일 시스템을 사용하는 것보다 느립니다. 이미 125k가 있다면 어쩌면 호스팅 대신 VPS를 사용하는 것이 좋습니다. 약 5-10 $/mon입니다.

+0

WHAT ?? 5-10 $/월에 VPS를 어디에서 얻을 수 있습니까? – LordZardeck

+0

http://www.hetzner.de/hosting/produkte_vserver/vq7 (나의 작은 필요를 위해 이것을 사용한다.) – Ximik

+0

대단한 헛소리. 일부 프로젝트의 경우이를 사용하게 될 수도 있습니다. – LordZardeck

0

저는 개인적으로 그렇게하지 않을 것입니다. 나중에 더 많은 문제를 일으킬 것입니다. http://www.000webhost.com/ (또는 이와 비슷한)으로 등록하고 서버 대신 이미지를 업로드하는 스크립트를 만드시겠습니까? 그것은 내가 할 일이다.

또는 이미지 저장 기간 제한 설정을 시작할 수 있습니까? x 일 후에 삭제 하시겠습니까?

0

CDN 또는 s3과 같은 이미지를 저장할 수 있습니까? 서버에서 이미지를 가져와 빠른 인프라의 이점을 얻으십시오. 더보기 : http://aws.amazon.com/cloudfront/

이미지를 보호해야하지만 모두 수행 할 수 있으면 더 복잡해집니다.

1

데이터베이스 외부에 이미지 (또는 부피가 큰 미디어 파일)를 저장하는 데는 많은 이유가 있습니다.

이미지를 데이터베이스에 저장하는 이유는 이미지 데이터가 SQL ACID 의미론으로 작동해야하기 때문입니다.

예를 들어 데이터베이스에 행을 삽입했지만 롤백하는 경우 이미지 데이터도 삭제해야합니다. 이미지 데이터를 데이터베이스 외부에 저장하는 경우 고아 이미지를 정리해야합니다. 마찬가지로 데이터베이스에서 행을 삭제하는 경우 디스크 또는 S3 등에서 행을 삭제해야합니다. 마찬가지로 행을 업데이트하면 트랜잭션 격리가 해제되어 경쟁 조건이 발생합니다.

또한 데이터베이스 외부에 이미지를 저장하면 데이터베이스 백업을 만드는 것이 더 복잡합니다. 이제 백업이 여러 단계의 프로세스 (백업 데이터베이스 및 백업 이미지 수집)이기 때문에뿐만 아니라 핫 백업을 만들 수 없기 때문에. 백업이 데이터베이스에서 데이터를 복사하는 동안 분 동안 이미지 콜렉션이 변경 될 수 있습니다.

+0

+1 정말 유용한 정보입니다. 이 프로젝트는 주요 엔터프라이즈 프로젝트가 아니기 때문에 데이터베이스에 이미지를 저장할 필요가 없다고 생각합니다. 공유 해줘서 고마워! – LordZardeck

관련 문제