Guide
Upload and process a file
Create a file dataset, PUT the bytes to its signed S3 target, and poll the dataset while processing runs automatically.
Workflow
- 1Create the file dataset
- 2PUT bytes to S3
- 3Let processing start automatically
- 4Poll until completed
Complete example
import { readFile } from 'node:fs/promises';
import { PermuteClient } from '@permute/sdk';
const orgClient = new PermuteClient({
apiKey: process.env.PERMUTE_API_KEY!,
});
const client = orgClient.withWorkspace(process.env.PERMUTE_WORKSPACE_ID!);
const bytes = await readFile('./revenue.csv');
const dataset = await client.datasets.create({
type: 'file',
fileName: 'revenue.csv',
contentType: 'text/csv',
data: bytes, // The SDK infers sizeBytes.
});
while (dataset.status !== 'completed' && dataset.status !== 'failed') {
await new Promise((resolve) => setTimeout(resolve, 2000));
await dataset.refresh();
}
if (dataset.status === 'failed') throw new Error(dataset.data.error ?? 'Dataset processing failed');
console.log(dataset.data);