Page 732 - Nodejs 교과서 개정2판
P. 732

௿ۄ਋٘ ಔ࣌झо प೯ೡ JOEFY KTܳ ੘ࢿ೤פ׮

          gcp-upload/index.js

           const	storage	=	require('@google-cloud/storage')();
           const	sharp	=	require('sharp');
           ➊
           	exports.resizeAndUpload	=	(data,	context)	=>	{
           ➋

           		const	{	bucket,	name	}	=	data;
           		const	ext	=	name.split('.')[Key.split('.').length	-	1];
           		const	requiredFormat	=	ext	===	'jpg'	?	'jpeg'	:	ext;	//	sharp에서는	jpg	대신	jpeg를	사용합니다
           		console.log('name',	name,	'ext',	ext);
           ➌
           		const	file	=	storage.bucket(bucket).file(name);
           		const	readStream	=	file.createReadStream();


           		const	newFile	=	storage.bucket(bucket).file(`thumb/${name}`);
           		const	writeStream	=	newFile.createWriteStream();
           ➍

           		sharp(readStream)
           				.resize(200,	200,	{	fit:	'inside'	})
           				.toFormat(requiredFormat)
           				.pipe(writeStream);
           ➎
           		return	new	Promise((resolve,	reject)	=>	{
           				writeStream.on('finish',	()	=>	{
           						resolve(`thumb/${name}`);
           				});
           				writeStream.on('error',	reject);
           		});
           };





         ➊ resizeAndUpload ೣࣻо ௿ۄ਋٘ ಔ࣌झܳ ഐ୹ೡ ٸ प೯غח ೣࣻੑפ׮  ݒѐ߸ࣻ۽ data৬ contextо
            ઱য૘פ׮  dataীח ഐ୹ ؘ੉ఠী ؀ೠ ੿ࠁо ׸ѹ ੓Ҋ  contextীח प೯غח ೣࣻ ജ҃ী ؀ೠ ੿ࠁо
            ׸ѹ ੓णפ׮  ૒੽ DPOTPMF MPHೞৈ যځೠ ੿ࠁٜ੉ ٜয ੓ח૑ ഛੋ೧ࠁח Ѫ੉ જणפ׮

         ➋ data ё୓۽ࠗఠ bucket ߡఉݺ   name ౵ੌݺ ਸ ߉ই৬ ഛ੢੗ܳ ୶୹೤פ׮

         ➌ storage.buckeU ݫࢲ٘۽ ߡఉਸ ࢸ੿ೠ ٍ  file ݫࢲ٘۽ ౵ੌਸ ૑੿೤פ׮  ૑੿ೠ ౵ੌਸ ੍Ѣա ॳח
            झ౟ܿਸ ࢤࢿೡ ࣻ ੓णפ׮

         ➍ TIBSQ ೣࣻী ౵ੌ ߡಌܳ ֍Ҋ  resize ݫࢲ٘۽ ௼ӝܳ ૑੿೤פ׮  ୐ ߣ૩৬ ف ߣ૩ ੋࣻח о۽৬ ࣁ۽

            ց࠺ܳ ੄޷೤פ׮  അ੤ 200  200ਵ۽ ઱যઉ ੓णפ׮  ೞ૑݅ о۽    QY  ࣁ۽    QY۽ ܻࢎ੉૚غח
   727   728   729   730   731   732   733   734   735   736   737