Использование Poppler с функциями Google Cloud

Я могу запустить Poppler для преобразования файла PDF в JPG с помощью Node JS, работающего в ОС Windows 10, без каких-либо проблем. Базовый код выглядит так:

const { Poppler } = require('node-poppler');
app.get('/poppler', (req, res) => {
  const file = __dirname + '/res/8025.pdf';
  const poppler = new Poppler();
  const options = {
    firstPageToConvert: 1,
    lastPageToConvert: 1,
    jpegFile: true,
  };
  const outputFile = __dirname + '/res/8025';
  const result = poppler.pdfToCairo(options, file, outputFile).then((res) => {
    console.log(result);
  });
});

Но тот же код, работающий в Google Cloud Functions, вызывает ошибку poppler: Error: linux НЕ поддерживается. Я предполагаю, что это связано с тем, что облачные функции Google работают в ОС Ubuntu.

node-poppler NPM говорит:

Поддержка Linux:

Бинарные файлы Windows и OSX / Darwin предоставляются с этим репозиторием. Для пользователей Linux вам нужно будет загрузить двоичные файлы poppler-data и poppler-utils отдельно.

Пример загрузки двоичных файлов в системе Debian:

sudo apt-get install poppler-data
sudo apt-get install poppler-utils

После их установки вам нужно будет передать каталог установки poppler-utils в качестве параметров экземпляру класса Poppler:

const { Poppler } = require('node-poppler');
const poppler = new Poppler('./usr/bin');

Я могу использовать Windows WSL для запуска Linux. Интересно, как развернуть мою функцию в Firebase с необходимыми файлами Linux? Любая помощь будет оценена по достоинству.

Мне нравится Poppler, и я хотел бы использовать его с облачными функциями Google.


person Pierre    schedule 29.10.2020    source источник
comment
вы не можете писать в файловую систему в бессерверных продуктах, таких как Cloud Functions, и поэтому этот пакет не будет работать, поскольку ему нужны некоторые файлы, записанные в систему. Вы можете использовать для этого вычислительный движок GCP, в котором у вас есть доступ ко всей системе, или попробовать другие методы, подобные описанному здесь stackoverflow.com/questions/43242998/   -  person Methkal Khalawi    schedule 29.10.2020