Merge pull request #915 from syuilo/write-file-use-stream
multer がテンポラリディレクトリにファイルを保存するように変更
This commit is contained in:
		
						commit
						431e24fa99
					
				|  | @ -2,7 +2,6 @@ | |||
| /.vscode | ||||
| /node_modules | ||||
| /built | ||||
| /uploads | ||||
| /data | ||||
| npm-debug.log | ||||
| *.pem | ||||
|  |  | |||
|  | @ -40,7 +40,7 @@ const addFile = async ( | |||
| 	folderId: mongodb.ObjectID = null, | ||||
| 	force: boolean = false | ||||
| ) => { | ||||
| 	log(`registering ${name} (user: ${user.username})`); | ||||
| 	log(`registering ${name} (user: ${user.username}, path: ${path})`); | ||||
| 
 | ||||
| 	// Calculate hash, get content type and get file size
 | ||||
| 	const [hash, [mime, ext], size] = await Promise.all([ | ||||
|  | @ -210,18 +210,19 @@ export default (user: any, file: string | stream.Readable, ...args) => new Promi | |||
| 				.catch(rej); | ||||
| 		} | ||||
| 		rej(new Error('un-compatible file.')); | ||||
| 	}).then(([path, remove]): Promise<any> => new Promise((res, rej) => { | ||||
| 		addFile(user, path, ...args) | ||||
| 			.then(file => { | ||||
| 				res(file); | ||||
| 				if (remove) { | ||||
| 					fs.unlink(path, (e) => { | ||||
| 						if (e) log(e.stack); | ||||
| 					}); | ||||
| 				} | ||||
| 			}) | ||||
| 			.catch(rej); | ||||
| 	})) | ||||
| 	}) | ||||
| 		.then(([path, remove]): Promise<any> => new Promise((res, rej) => { | ||||
| 			addFile(user, path, ...args) | ||||
| 				.then(file => { | ||||
| 					res(file); | ||||
| 					if (remove) { | ||||
| 						fs.unlink(path, (e) => { | ||||
| 							if (e) log(e.stack); | ||||
| 						}); | ||||
| 					} | ||||
| 				}) | ||||
| 				.catch(rej); | ||||
| 		})) | ||||
| 		.then(file => { | ||||
| 			log(`drive file has been created ${file._id}`); | ||||
| 			resolve(file); | ||||
|  |  | |||
|  | @ -40,7 +40,7 @@ app.get('/', (req, res) => { | |||
| endpoints.forEach(endpoint => | ||||
| 	endpoint.withFile ? | ||||
| 		app.post(`/${endpoint.name}`, | ||||
| 			endpoint.withFile ? multer({ dest: 'uploads/' }).single('file') : null, | ||||
| 			endpoint.withFile ? multer({ storage: multer.diskStorage({}) }).single('file') : null, | ||||
| 			require('./api-handler').default.bind(null, endpoint)) : | ||||
| 		app.post(`/${endpoint.name}`, | ||||
| 			require('./api-handler').default.bind(null, endpoint)) | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue