Функции Firebase загружают файл из хранилища

#firebase #google-cloud-functions #firebase-storage

# #firebase #google-cloud-функции #firebase-хранилище

Вопрос:

Я использую функцию Firebase для создания PDF (pdfkit) с изображениями, хранящимися в хранилище. У меня есть только общедоступный URL-адрес изображения. Функция и хранилище являются частью одной учетной записи / проекта в Firebase.

Как я могу загрузить изображение во временную папку для создания моего PDF-файла? Я попробовал следующий код (и некоторые варианты, но ни один из них не сработал) Он не может найти файл / изображение.

 const tmpFilePath = path.join(os.tmpdir(), 'tmp.jpg');
const bucket = admin.storage().bucket();
await bucket.file(imageURL).download({destination: tmpFilePath});
doc.image(tmpFilePath, x, y);
fs.unlinkSync(tmpFilePath);
 

Комментарии:

1. вы видите какие-либо ошибки в журналах? пожалуйста, добавьте это в вопрос

Ответ №1:

Так что просто отвечаю на свой вопрос для дальнейшего использования и помогаю другим. Я не смог заставить загрузку работать с URL-адресом, поэтому я модифицирую код для сохранения локального пути и использую вместо него этот.

 async function WriteImage(doc:any, storagePath:string, topX:number, topY:number, width:number, height:number, name:string){
    doc.rect(topX, topY, width, height).stroke('#000');
    if(storagePath !== null){
        const tmpPath = path.join(os.tmpdir(), 'tmp.jpg');
        await admin.storage().bucket().file(storagePath).download({destination: tmpPath});
        doc.image(tmpPath, topX, topY, {fit: [width, height]});
        fs.unlinkSync(tmpPath);
}
 

}