#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);
}
}