2016-06-27 16 views
0

こんにちは私はすべてのものに全く新しいので、心に留めておいてください。multer保存ファイルはどれくらいの期間利用できますか?

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 storage = multer.diskStorage { 宛先:function(req、file、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)を検討するとよいでしょう。 –

関連する問題