, поэтому я пытаюсь сделать миниатюру из изображения, которое было загружено в хранилище Firebase.функция может генерировать эскиз правильно.но из журнала функций, кажется, что функция все еще выполняется несколько раз, даже несмотря на то, что миниатюра была сгенерирована отлично.
, как вы можете видеть из журнала ниже, функция работает с 2:37 до 2:40 в течениеи снова.Мне нужно удалить функцию с терминала, чтобы остановить функцию.
вот код, который я использую:
export const generateEventThumbnail = functions.storage.object().onFinalize(async (object) => {
const fileBucket = object.bucket; // The Storage bucket that contains the file.
const filePath = object.name; // File path in the bucket.
const contentType = object.contentType; // File content type.
const fileName = path.basename(filePath); // Get the file name.
console.log(filePath)
console.log(fileName)
if (!contentType.startsWith('image/')) {
console.log('This is not an image.');
return null;
}
try {
// [START thumbnailGeneration]
// Download file from bucket.
const bucket = gcs.bucket(fileBucket);
const tempFilePath = path.join(os.tmpdir(), fileName);
const metadata = {contentType: contentType};
await bucket.file(filePath).download({destination: tempFilePath})
console.log('Image downloaded locally to', tempFilePath)
// Generate a thumbnail using ImageMagick.
await spawn('convert', [tempFilePath, '-thumbnail', '100x100>', tempFilePath])
console.log('Thumbnail created at', tempFilePath)
// We add a 'thumb_' prefix to thumbnails file name. That's where we'll upload the thumbnail.
const thumbFileName = `${fileName}`;
const thumbFilePath = `eventThumbnail/${thumbFileName}`
// Uploading the thumbnail.
await bucket.upload(tempFilePath, {destination: thumbFilePath,metadata: metadata})
// Once the thumbnail has been uploaded delete the local file to free up disk space.
fs.unlinkSync(tempFilePath)
// [END thumbnailGeneration]
// then save the thumbnail path to the event data in firestore database
return Promise.resolve(null)
}
catch (error) {
console.log(error)
}
});
как остановить функцию после успешного создания эскиза?