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۽ ܻࢎغח