나는 아주 좋아하는 응용 프로그램이 있습니다. 이미지 및 기타 관련 정보는 MongoDb에 저장됩니다. 일반적으로 이미지의 크기는 약 1MB입니다. 이미지가 무한 스크롤로 표시됩니다. base64 문자열을 사용하는 긴 스크립트가로드되면 브라우저가 충돌하거나 응답 시간이 매우 길어집니다 (특히 Internet Explorer의 경우) MongoDb에 저장된 이미지를 표시하는 가장 좋은 방법은 무엇입니까?MongoDb에 저장된 이미지 표시
답변
이 응용 프로그램의 일부 서버 쪽이 있습니까? 이미지를 검색 할 수있는 작은 API를 만들면 어떨까요?
그래서 브라우저가 이미지에 대한 정보를 가질 것이며, 그것을 위해 라인에 뭔가를 서버를 요청할 수 있습니다 http://your_server/api/image/imageID
또는 http://your_server/images/imagename
다음 그냥이 이미지를 스트리밍 할 서버, 당신은 파일 시스템이 저장 할 필요가 없습니다.
클라이언트 측 (브라우저)에서 '지연로드'만 구현하면됩니다.
왜 mongodb에 이미지를 저장하지 않습니까? – TeodorKolev
나는 이것을 달성하는 가장 좋은 방법은 실제로 서버의 일부 공용 폴더에 파일을 보관하는 것입니다. 이것은 당신은 당신은 여전히 백업으로하여 MongoDB에서 Base64로 이미지를 유지할 수
같은 것을 사용할 필요가있는 방법으로 accesible해야하지만,이에 가장 좋은 방법이 아니다 성능 문제로 인해 이미지를 검색 할 수 있습니다 (본 것처럼). 다음을 수행 할 것을 권합니다.
mongo에 이미지를 저장할 때마다 "이미지 파일"을 서버의 일부 공공 장소에도 저장해야합니다. 사용중인 몽고 모델에 해당 파일의 경로를 유지해야한다는 것을 명심하십시오. 따라서 다음 번에 객체를 호출 할 때 기본 64 이미지를 얻는 대신 이미지 경로 만 가져야합니다.
방금 몽고 투영을 사용하여 image64을 무시 할 수 있으며, 클라이언트 측에서 그냥 사용합니다 일부 HTML 태그를 사용하여이 모델
myModel = {
name: "some name",
image64: "someextralongstringveryveryveryweird......",
imageUrl: "/images/my/path/to/image/imagename-id.jpg"
}
당신이 그것에 쿼리 다음 시간을 말할 수 있습니다 그 url.
<img src="/images/my/path/to/image/imagename-id.jpg">
성능에 많은 도움이됩니다.
이미지 파일 생성을 관리하는 데 도움이되는 라이브러리가 있습니다. ImageMagick은 내가 사용 해왔고 매우 다양합니다.
왜 이미지를 mongodb에 저장하지 않습니까? – TeodorKolev
파일 자체를 검색하는 것보다 URL을 포함하는 쿼리를 파일로 검색하는 것이 훨씬 빠르며, 다른 관점에서이 질문에 대한 대답이라고 생각합니다. https://stackoverflow.com/questions/7703867/storing-image-files-in- mongo-database-it-a-good-idea – Roger
MongoDB를 사용하는 경우 GridFS (http://excellencenodejsblog.com/gridfs-using-mongoose-nodejs/)를 사용하여 데이터베이스에 이미지를 저장해야합니다.이 기능은 응용 프로그램에 가상 파일 시스템과 같은 것을 제공합니다.
GridFS를 사용하면 MongoDB 인스턴스에서 요청한 파일을 스트리밍하고 파일 내용을 응답에 파이프하는 컨트롤러 메소드를 작성할 수 있습니다.
이미지에 대한 질문에 텍스트 파일 링크를 게시합니다. 좋은 직장 – TeodorKolev
이미지를 파일 시스템에 저장하고 웹 서버를 사용하여 클라이언트에 제공하는 것이 좋습니다. 성능 향상을 위해 트래픽을 처리 할 수있는 CDN에 넣을 것입니다.
응용 프로그램 저장소 (mongo)에서 URL/위치를 이미지에 저장 한 다음 자바 스크립트 코드에서 이미지를 검색 할 때 사용할 수 있습니다.
또한 코드에서 사용자가 스크롤하기 전에 이미지를 미리로드하는 자바 스크립트를 통해 이미지를 미리로드하는 것이 좋습니다. 거기에 당신이 활용할 수있는 몇 가지 훌륭한 도구가 있습니다.
저장 용량을 변경할 수없는 상황에서 mongo를 사용해야합니다. 미리보기 이미지는 javacript입니다.
DB에 저장하려면 어떻게해야합니까? – TeodorKolev
@TeodorKolev, 당신은 db에 저장할 수 있습니다. 나는 base64 인코딩 바이너리 파일을 권하고 DB에 저장하는 것이 좋습니다. 그런 다음 원하는 경우 base64 이미지를 제공하여 다른 프로세스를 통해 이진으로 다시 변환 할 수 있습니다. 또한 고려해야 할 성능 문제가있을 수 있습니다. –
이것에 대한 좋은 예를 알고 있습니까? – TeodorKolev
- 1. OPENSHIFT_DATA_DIR에 저장된 이미지 표시
- 2. JSP에 저장된 이미지 파일 표시
- 3. iOS 5에서 저장된 이미지 표시
- 4. Openshift 서버에 저장된 이미지 표시
- 5. 서버에 저장된 격자보기의 이미지 표시
- 6. 데이터베이스에 저장된 경로의 이미지 표시
- 7. node.js를 사용하여 mongodb gridfs에 저장된 이미지 표시
- 8. gridview의 sd 카드에 저장된 이미지 표시
- 9. mysql 데이터베이스 + ASP.NET MVC에 저장된 이미지 표시
- 10. onmouseover 데이터베이스에 BLOB에 저장된 이미지 표시
- 11. GridView에 sd 카드에 저장된 이미지 표시
- 12. 데이터베이스에 BLOB로 저장된 img 태그의 이미지 표시
- 13. GWT RPC를 사용하여 blob로 저장된 이미지 표시
- 14. 머리글을 사용하지 않고 데이터베이스에 저장된 이미지 표시
- 15. Google 드라이브에 저장된 퓨전 테이블에 이미지 표시
- 16. Bongata로 저장된 텍스트를 mongodb에 내 보냅니다.
- 17. 몽구스로 mongoDb에 저장, 예기치 않은 요소가 저장된
- 18. mongodb에 문자열로 저장된 시간을 쿼리하는 중
- 19. gridFS를 사용하여 mongoDB에 파일 (이미지) 저장하기
- 20. 데이터베이스에 저장된 비트 맵 표시
- 21. 디렉토리에 저장된 디렉토리 표시
- 22. 캐시에 저장된 내용 표시
- 23. sqlitedatabase에 저장된 데이터 표시
- 24. 피라미드로 저장된 이미지 향상
- 25. 저장된 이미지 소환
- 26. php와 css로 스타일 목록에 MySQL 데이터베이스에 저장된 이미지 표시
- 27. 서블릿을 사용하여 웹 브라우저에서 amazon s3에 저장된 이미지 표시
- 28. 웹 페이지의 데이터베이스에 저장된 비트 맵 이미지 (.bmp) 표시
- 29. 내 프로젝트 내의 폴더에 저장된 .rdl 보고서에 이미지 표시
- 30. PHP 및 HTML을 사용하여 데이터베이스에 저장된 이미지 표시
이미지의 base64 인코딩에 대한 요구 사항이 있습니까? Mongo는 바이너리 데이터를 지원합니다 ... –