Преобразование файлов CSV в простой формат TXT часто требуется, когда нужны лёгкие извлечения данных для журналирования или дальнейшей обработки. Aspose.PDF Cloud SDK for Node.JS предоставляет мощную библиотеку, которая обрабатывает хранение файлов и конвертацию форматов в облаке. В этом руководстве вы увидите пошаговую реализацию, которая загружает CSV, конвертирует его в TXT и сохраняет результат локально, используя async/await. Пример также демонстрирует очистку временных файлов и базовую обработку ошибок.
Как конвертировать CSV в TXT в Node.JS - пошагово
- Установите библиотеку и импортируйте необходимые модули: Добавьте пакет в ваш проект и подключите необходимые классы.
const fs = require('fs');
const path = require('path');
const { PdfApi } = require('asposepdfcloud');
- Инициализируйте PdfApi с вашими учетными данными: Создайте экземпляр
PdfApi, используя ваш client ID и secret.
const clientId = 'YOUR_CLIENT_ID';
const clientSecret = 'YOUR_CLIENT_SECRET';
const pdfApi = new PdfApi(clientId, clientSecret);
- Загрузите CSV‑файл в Aspose Cloud storage: Используйте
uploadFileдля передачи локального CSV в облако.
const localCsvPath = path.resolve(__dirname, 'input.csv');
const remoteCsvPath = 'input.csv';
await pdfApi.uploadFile(remoteCsvPath, fs.createReadStream(localCsvPath));
- Преобразовать загруженный CSV в TXT: Вызовите
getDocumentс целевым форматом'txt'.
const convertResponse = await pdfApi.getDocument(remoteCsvPath, null, 'txt');
- Сохраните поток TXT локально и выполните очистку: Перенаправьте тело ответа в файл и при желании удалите удалённый CSV.
const localTxtPath = path.resolve(__dirname, 'output.txt');
const writeStream = fs.createWriteStream(localTxtPath);
await new Promise((resolve, reject) => {
convertResponse.body.pipe(writeStream);
convertResponse.body.on('error', reject);
writeStream.on('finish', resolve);
writeStream.on('error', reject);
});
await pdfApi.deleteFile(remoteCsvPath); // optional cleanup
Для получения более подробной информации о классе PdfApi обратитесь к справке API.
Полный пример кода: преобразование CSV в TXT с помощью Aspose.PDF
Следующий код демонстрирует полный процесс от загрузки CSV‑файла до получения преобразованного TXT‑файла.
const fs = require('fs');
const path = require('path');
const { PdfApi } = require('asposepdfcloud');
// Replace with your actual Aspose PDF Cloud credentials
const clientId = 'YOUR_CLIENT_ID';
const clientSecret = 'YOUR_CLIENT_SECRET';
// Initialize the PdfApi instance
const pdfApi = new PdfApi(clientId, clientSecret);
// Paths (adjust as needed)
const localCsvPath = path.resolve(__dirname, 'input.csv');
const remoteCsvPath = 'input.csv'; // Path in Aspose Cloud storage
const localTxtPath = path.resolve(__dirname, 'output.txt');
async function convertCsvToTxt() {
try {
// 1. Upload the CSV file to Aspose Cloud storage
const uploadResponse = await pdfApi.uploadFile(remoteCsvPath, fs.createReadStream(localCsvPath));
if (uploadResponse.status !== 'OK') {
throw new Error(`Upload failed: ${JSON.stringify(uploadResponse)}`);
}
console.log('CSV file uploaded successfully.');
// 2. Convert the uploaded CSV to TXT format
const convertResponse = await pdfApi.getDocument(remoteCsvPath, null, 'txt');
if (!convertResponse.body) {
throw new Error('Conversion response does not contain a body stream.');
}
// 3. Save the converted TXT stream to a local file
const writeStream = fs.createWriteStream(localTxtPath);
await new Promise((resolve, reject) => {
convertResponse.body.pipe(writeStream);
convertResponse.body.on('error', reject);
writeStream.on('finish', resolve);
writeStream.on('error', reject);
});
console.log(`Conversion completed. TXT saved to ${localTxtPath}`);
// 4. (Optional) Clean up: delete the CSV file from cloud storage
const deleteResponse = await pdfApi.deleteFile(remoteCsvPath);
if (deleteResponse.status !== 'OK') {
console.warn(`Failed to delete remote CSV: ${JSON.stringify(deleteResponse)}`);
} else {
console.log('Remote CSV file deleted.');
}
} catch (error) {
console.error('An error occurred:', error.message);
}
}
// Execute the conversion
convertCsvToTxt();
Примечание: Этот пример кода демонстрирует основную функциональность. Прежде чем использовать его в вашем проекте, убедитесь, что обновили все пути к файлам и значения конфигурации в соответствии с вашей реальной средой, проверьте, что все необходимые зависимости правильно установлены, и тщательно протестируйте в вашей среде разработки. Если вы столкнётесь с какими‑либо проблемами, обратитесь к официальной документации или свяжитесь с командой поддержки для получения помощи.
Преобразование CSV‑файлов в TXT с помощью cURL
Вы можете выполнить ту же конвертацию, используя REST API напрямую. Ниже приведены шаги, показывающие, как получить токен доступа, загрузить CSV, запросить конвертацию и скачать полученный файл TXT.
- Получить токен доступа
curl -X POST "https://api.aspose.cloud/connect/token" \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "grant_type=client_credentials&client_id=YOUR_CLIENT_ID&client_secret=YOUR_CLIENT_SECRET"
- Загрузить CSV‑файл
curl -X PUT "https://api.aspose.cloud/v3.0/pdf/storage/file/input.csv" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: text/csv" \
--data-binary @input.csv
- Преобразовать загруженный CSV в TXT
curl -X GET "https://api.aspose.cloud/v3.0/pdf/input.csv?format=txt" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-o output.txt
- Удалить удалённый CSV‑файл (необязательно)
curl -X DELETE "https://api.aspose.cloud/v3.0/pdf/storage/file/input.csv" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN"
Для полного списка параметров см. официальную документацию API.
Установка и настройка Aspose.PDF Cloud SDK для Node.JS
Добавьте библиотеку в ваш проект с помощью npm и убедитесь, что у вас есть действительная учётная запись Aspose Cloud.
npm install asposepdfcloud
Вы также можете загрузить пакет напрямую со страницы релизов. Библиотека требует Node.js 12 или выше и активную подписку Aspose Cloud.
Ключевые возможности Aspose.PDF Cloud SDK для задач CSV в TXT
- Интеграция облачного хранилища - Файлы хранятся в Aspose Cloud, устраняя ограничения локального диска.
- Конвертация на лету - Метод
getDocumentвозвращает поток, позволяя сразу обрабатывать данные без промежуточных файлов. - Поддержка async/await - Все операции возвращают промисы, естественно вписываясь в современные кодовые базы Node.JS.
- Потоковый ввод/вывод - Загрузка и скачивание происходят в виде потоков, снижая использование памяти при работе с большими CSV‑файлами.
- Широкая поддержка форматов - Помимо TXT, тот же API может конвертировать в PDF, DOCX, HTML, и другие.
Тонкая настройка параметров конвертации CSV в TXT
Хотя базовое преобразование требует только целевого формата, вы можете настроить запрос, добавив дополнительные параметры, такие как имя хранилища или расположение папки. Метод getDocument принимает аргумент folder (в примере установлен в null) и аргумент storage, если вы используете пользовательское хранилище.
Пример указания имени хранилища (фрагмент кода уже использован в основном потоке):
const convertResponse = await pdfApi.getDocument(remoteCsvPath, null, 'txt');
Для полного списка необязательных параметров обратитесь к справочнику API.
Заключение
Преобразование CSV в TXT в Node.JS становится простым с помощью Aspose.PDF Cloud SDK for Node.JS. Библиотека обрабатывает аутентификацию, облачное хранилище и потоковое преобразование, позволяя вам сосредоточиться на бизнес‑логике. Не забудьте ознакомиться с деталями ценообразования на странице продукта и получить временную лицензию со страницы временной лицензии для оценки перед переходом в продакшн. С кодом и примерами cURL в этом руководстве вы можете быстро и надёжно интегрировать преобразование CSV в TXT в любое приложение Node.JS.
FAQs
Как я могу конвертировать CSV в TXT в Node.JS с использованием Aspose.PDF?
Используйте библиотеку для загрузки CSV, вызовите getDocument с форматом 'txt' и передайте поток ответа в локальный файл. Полный пример кода выше показывает каждый шаг.
Какой метод аутентификации использует библиотека?
Укажите ваш client ID и client secret; библиотека автоматически получает OAuth‑токен и включает его в каждый запрос.
Можно ли эффективно обрабатывать большие файлы при конвертации?
Да. И загрузка, и скачивание выполняются потоково, поэтому процесс работает с большими CSV‑файлами без загрузки всего содержимого в память.
Где можно получить временную лицензию для тестирования?
Временная лицензия доступна на странице страница временной лицензии.