mirror of
				https://github.com/SillyTavern/SillyTavern.git
				synced 2025-06-05 21:59:27 +02:00 
			
		
		
		
	main
This commit is contained in:
		
							
								
								
									
										66
									
								
								node_modules/multer/storage/disk.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										66
									
								
								node_modules/multer/storage/disk.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,66 @@ | ||||
| var fs = require('fs') | ||||
| var os = require('os') | ||||
| var path = require('path') | ||||
| var crypto = require('crypto') | ||||
| var mkdirp = require('mkdirp') | ||||
|  | ||||
| function getFilename (req, file, cb) { | ||||
|   crypto.randomBytes(16, function (err, raw) { | ||||
|     cb(err, err ? undefined : raw.toString('hex')) | ||||
|   }) | ||||
| } | ||||
|  | ||||
| function getDestination (req, file, cb) { | ||||
|   cb(null, os.tmpdir()) | ||||
| } | ||||
|  | ||||
| function DiskStorage (opts) { | ||||
|   this.getFilename = (opts.filename || getFilename) | ||||
|  | ||||
|   if (typeof opts.destination === 'string') { | ||||
|     mkdirp.sync(opts.destination) | ||||
|     this.getDestination = function ($0, $1, cb) { cb(null, opts.destination) } | ||||
|   } else { | ||||
|     this.getDestination = (opts.destination || getDestination) | ||||
|   } | ||||
| } | ||||
|  | ||||
| DiskStorage.prototype._handleFile = function _handleFile (req, file, cb) { | ||||
|   var that = this | ||||
|  | ||||
|   that.getDestination(req, file, function (err, destination) { | ||||
|     if (err) return cb(err) | ||||
|  | ||||
|     that.getFilename(req, file, function (err, filename) { | ||||
|       if (err) return cb(err) | ||||
|  | ||||
|       var finalPath = path.join(destination, filename) | ||||
|       var outStream = fs.createWriteStream(finalPath) | ||||
|  | ||||
|       file.stream.pipe(outStream) | ||||
|       outStream.on('error', cb) | ||||
|       outStream.on('finish', function () { | ||||
|         cb(null, { | ||||
|           destination: destination, | ||||
|           filename: filename, | ||||
|           path: finalPath, | ||||
|           size: outStream.bytesWritten | ||||
|         }) | ||||
|       }) | ||||
|     }) | ||||
|   }) | ||||
| } | ||||
|  | ||||
| DiskStorage.prototype._removeFile = function _removeFile (req, file, cb) { | ||||
|   var path = file.path | ||||
|  | ||||
|   delete file.destination | ||||
|   delete file.filename | ||||
|   delete file.path | ||||
|  | ||||
|   fs.unlink(path, cb) | ||||
| } | ||||
|  | ||||
| module.exports = function (opts) { | ||||
|   return new DiskStorage(opts) | ||||
| } | ||||
		Reference in New Issue
	
	Block a user