2016-06-27 2 views
0

안녕하세요 저는 모든 것에 완전히 새로운 것이므로 마음에 두십시오.멀 터 저장 파일은 얼마나 오래 사용할 수 있습니까?

multer으로 내 익스프레스 앱에 이미지를 저장하고 있습니다. multer 문서에서 그것은 multer가 파일을 디스크에 저장하고 있다고 말합니다.

정확히 무엇을 의미합니까? 나는 heroku에 내 애플 리케이션을 호스팅하고 있습니다. 누군가 이미지를 업로드 할 때 잠시 후 이미지가 삭제됩니까? 아니면 영원히 내 애플 리케이션에 저장됩니까?

죄송합니다. 이상한 질문인데 죄송 합니다만 이에 대한 분명한 답변을 찾을 수 없습니다. 나는 그것이 일시적으로 사용자의 디스크에 저장되었다고 생각하지만 확실하지 않습니다.

귀하의 도움에 감사드립니다.

+0

multer에서 저장 한 이미지는 영구 보존됩니다. 삭제하거나 덮어 쓸 때까지 사용할 수 있습니다. 일부 세션에만 해당되는 것은 아닙니다 –

답변

0

multer 파일을 메모리 또는 디스크에 저장할 수 있습니다.

이러한 파일이 메모리 (RAM)에 저장되어 있으면 서버를 다시 부팅하거나 전원을 끈 경우 내용이 파괴됩니다.

이러한 파일을 디스크에 저장하면 파일 시스템에 저장됩니다. 당신은 이런 식으로 디스크 스토리지를 구성합니다

이 예에서
var storage = multer.diskStorage({ 


destination: function (req, file, cb) { 
    cb(null, '/tmp/my-uploads') 
    }, 
    filename: function (req, file, cb) { 
    cb(null, file.fieldname + '-' + Date.now()) 
    } 
}) 

, 파일이 저장됩니다/tmp를/내-업로드 다른 모든 파일처럼 그들이 삭제 될 때까지 서버/디렉토리, 귀하의 파일 시스템에.

+0

diskStorage를 사용할 때 이미지는 모든 사용자에게 로컬로 저장됩니다. 맞습니까? 아니면 서버에 저장되어 있습니까? – aleonstackoverflow

+0

이미지는 웹 사이트를 호스팅하는 서버에 저장됩니다. 내가 multer를 구성하는 경우 예를 들어, 다음과 같이 var에 저장 = multer.diskStorage ({ 대상 : 기능 (REQ, 파일, CB) { CB (NULL, './public/files') }, 파일 이름 : 함수 (req, file, cb) { cb (null, file.fieldname + '-'+ Date.now() + '. + mime.extension (file.mimetype)) } }}); 그런 다음 SERVER는 이러한 파일을 저장합니다. 사용자 A가 fileA.txt를 업로드 한 다음 사용자 B가 fileB.txt를 업로드하면 서버의 ./public/files 디렉토리에 fileA.txt와 fileB.txt가 모두 포함됩니다. –

+0

참고 :이 파일이 각 사용자에게 비공개 인 경우이 디렉토리가 공개되어 있지 않고 사용자 A가 사용자 B의 파일을 볼 수있는 방법이 없는지 확인해야합니다. 이 경우 특정 사용자에 대한 파일이 들어있는 하위 디렉토리 (아마도 사용자 ID로)를 고려할 수 있습니다. –

관련 문제