потоковая передача .net core .XLSX на AWS Lambda

#c# #amazon-web-services #asp.net-core #.net-core #aws-lambda

#c# #amazon-веб-сервисы #asp.net-core #.net-ядро #aws-lambda

Вопрос:

очень просто, я использую AWS Lambda и генерирую файлы .xlsx и копирую их в S3 непосредственно из lambda, поскольку в lambda существует ограничение на выделение памяти, мне нужно перейти на потоковое решение при генерации файла xlsx… Я уже могу передавать потоковую передачу на S3, но эта функциональность отключена, поскольку при создании файла не используется потоковая передача…

Дизайн:

lambda AWS: SQL server -> dapper (потоковая передача) -> генерировать xlsx -> копировать в S3 (потоковая передача)

как вы можете видеть, часть xlsx является здесь узким местом с точки зрения использования памяти.

Если вы знаете библиотеку, которая может поддерживать это (имейте в виду .net core), пожалуйста, дайте мне знать!

PS мы не можем использовать node.js и я знаю, что в node есть опции, которые делают это…

Спасибо!

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

1. какую библиотеку вы используете в настоящее время? Какие функциональные возможности xlsx вам нужны? (некоторые библиотеки могут подойти для вашего случая, но, например, не могут создавать расширенные функции в xlsx)

2. в настоящее время EPPlus — не уверен, насколько это актуально, как если бы он поддерживал потоковую передачу, я бы не задавал вопрос — просто говорю … 😉

3. Мы не знаем, могли ли вы пропустить какую-то опцию используемой вами библиотеки; и я бы сказал, что подавляющее большинство вопросов в Stack Overflow, которые я вижу, похожи на эти. Во-вторых, библиотеки для xlsx сильно различаются по своим возможностям, и знание используемой вами библиотеки помогает установить некоторый стандарт в отношении того, что вам может понадобиться, на случай, если вы не ответили на второй вопрос, который я задал, чего вы на самом деле не сделали ;).

4. Вы можете проверить NPOI или ClosedXML

5. @Pac0 Я проверил пинг обоих разработчиков npoi и закрытого xml и сослался на этот вопрос. Рискуя, я предполагаю, что никто еще не сделал этого на .net, и есть примеры на java и node. Мы выбрали EPPlus, поскольку это была самая эффективная библиотека .net, которую мы смогли найти для генерации файлов xlsx. Я посмотрел спецификации формата и мог бы в конечном итоге написать свой собственный, но предпочел бы этого не делать, если это возможно…