내 웹 사이트는 많은 이미지를 사용합니다. 약한 날에 사용자는 수백 개의 새 이미지를 업로드합니다. 나는 이미지의 크기를 조작하기위한 최선의 방법이 무엇인지 알아 내려하고있다.서버로 업로드하거나 서버에서 클라이언트로 제공 할 때 이미지 크기를 조정 하시겠습니까?
이 프로젝트는 이미지 조작을 위해 gm 모듈과 함께 Node.js를 사용하지만이 질문은 노드 또는 GM과 관련이 없다고 생각합니다.
나는 몇 가지 전략을 생각해 냈지만, 어떤 것이 최선인지에 대한 결정을 내릴 수는 없으며 확실한 모범 사례 전략을 놓치고 있는지 확실하지 않습니다.
여러분의 생각과 경험을 통해 저에게 계몽 해주십시오.
옵션 1 : 모든 클라이언트 요청시 gm으로 파일의 크기를 조정하십시오.
옵션 1 프로 : 나는이 파일을 제공 할 때마다 GM의 기능을 실행하면
, 내가 필요할 때마다의 크기, 품질, 압축, 필터 등을 제어 할 수 있습니다.
서버에서 전체 파일 크기는 1로 저장하고 저장 공간을 절약합니다.
옵션 1 단점 :
GM은 많은 자원, 그리고 그게 내가 모든 단일 클라이언트에 모든 단일 이미지 서버에 대한 내 RAM을 남용되는 것을 의미합니다.
이것은 내가 항상 큰 파일에서 작업한다는 것을 의미하며, 이는 상황을 더 악화시킵니다.
나는 내 스토리지 (내 경우 S3)에서 서버로 파일을 가져 와서 조작 한 다음 제공해야합니다. 중복 대역폭 문제가 발생하는 것 같습니다.
옵션 2 : 먼저 업로드에있는 파일의 크기를 조정하고 서버에있는 파일의 여러 크기를 유지한다.
옵션 2 프로 :
난 단지 업로드에 GM을 사용해야합니다.
파일을 검색하는 데 리소스가 거의 필요하지 않습니다.
옵션 2 단점 : 나는 같은 파일의 여러 버전을 절약 할 수 있기 때문에 내가 더 많은 스토리지를 사용
(즉, 전체, 대형, 중형, 소형, X-작은) 단 하나의 버전 대신에.
사용자가 이미지를 업로드 할 때 생성 된 크기 만 사용하도록 제한됩니다.
유연하지 않음 - 나중에 추가 버전 (예 : x-x-small)이 필요한 경우 스토리지의 모든 이미지를 처리하여 새 버전의 이미지를 만드는 스크립트를 실행해야합니다.
옵션 3 : 내 저장 장치에 저장된 버전이없는 파일 크기를 제공하는 경우 업로드에 파일 만 처리에 사용 옵션이 있지만, 크기 조절 모듈을 유지합니다.
옵션 3 장점 :
- 내가 설정 한 크기의 선택에 파일을 제공 할 때 크게 리소스 사용을 줄일 수있을 것입니다.
옵션 3 단점 : 여전히 옵션 난 아직도 내가 그들을 서비스를 제공 할 때 파일을 처리해야합니다 1.
대 옵션 2로 더 많은 스토리지를 취할 것
내가 원하는 파일 크기가없는 경우
옵션 4 : 업로드 할 때 여러 버전의 파일을 만들지 않습니다. 이미지 크기를 요청할 때 BUT 이미지를 제공 할 때 이미지의 크기를 조정하면 파일의이 버전이 저장 장치에 저장되고 이후 요청을 위해 이미지를 다시 처리 할 필요가 없습니다.
옵션 4 장점 :
난 단지 내가 사용하는 버전의 스토리지를 사용합니다.
필자는 필요할 때마다 새로운 파일 크기를 추가 할 수 있으며 필요에 따라 파일 크기가 자동으로 생성됩니다. 및 스토리지 집약적 인 집약적 모두 자원이 될 것입니다
- 파일을 한 번만 액세스 할 수 있습니다 :
는 옵션
파일 당 한 번만 4 단점 많은 자원을 사용합니다 . 파일에 액세스 할 것이므로 필요한 크기 버전이 존재하지 않으며, 새 파일 버전을 만들고, 필요한 리소스를 사용하고, 한 번만 사용되는 파일의 저장 공간을 낭비하는 저장소에 저장하십시오 (). 참고, 파일을 몇 번이나 사용할 지 알 수 없음)
- 모든 요청에 대해 파일이 이미 있는지 확인해야합니다.
그래서,
를 선택할 것인가? 왜?
내가 제안한 방법보다 효과적인 방법이 있습니까?
나는 당신의 생각을 좋아합니다. –