Я использую Express, Node и Google Drive API. Я пытаюсь ответить на вызов API моей конечной точки с помощью большого двоичного объекта файла PDF. Но я не хочу сохранять файл, когда получаю его из Drive API, я просто хочу сохранить его в переменной, преобразовать в base64 и отправить своему потребителю API.
Краткий обзор что происходит. Я застрял на шагах 3-4. 1. Потребитель вызывает мою конечную точку API с полезными данными, содержащими платежную информацию. 2. Я создаю новый документ из шаблона и использую полезные данные для заполнения документа с помощью Docs API. 3. Я экспортирую документ как PDF. 4. Я отправляю ответ своему потребителю API с каплей Документа из шага 3.
Как я могу этого добиться?
Почему я хочу достичь этот? По сути, я стараюсь избегать лишней работы, чтобы загрузить файл и где-то его сохранить, потому что тогда мне нужно другое подключение к чему-то. Если я не могу этого избежать, когда я захочу попытаться справиться с этим в GCP с помощью Buckets. Так что рекомендации там тоже будут полезны.
Ниже приведен обзор моего кода
// this works
const driveAPI = google.drive({version:"v3", auth: client});
const fileId = await createDocFromTemplate();
const doc = updateDoc( fileId, req.body );
// now it gets tricky
const PDF_FILE = exportDocAsPdf(doc); // how can I temporarily store pdf to a variable?
const PDF_AS_BASE = transformPdfToBase64(PDF_FILE); // how can I convert pdf to base64?
// this is what I want to send back to the API consumer
res.send({
id: fileId,
fileAsPdf : PDF_AS_BASE
})