Untitled

 avatar
user_6688396
plain_text
a year ago
1.4 kB
2
Indexable
Never
const axios = require('axios');

// Função para dividir um JSON em partes menores
function splitJsonIntoChunks(json, chunkSize) {
  const jsonString = JSON.stringify(json);
  const chunks = [];
  let offset = 0;

  while (offset < jsonString.length) {
    const chunk = jsonString.slice(offset, offset + chunkSize);
    chunks.push(chunk);
    offset += chunkSize;
  }

  return chunks;
}

// Função para enviar os chunks por meio de requisições POST usando o Axios
async function sendJsonChunks(chunks, url) {
  for (let i = 0; i < chunks.length; i++) {
    try {
      const response = await axios.post(url, chunks[i], {
        headers: {
          'Content-Type': 'application/json',
        },
      });

      console.log(`Chunk ${i + 1} sent successfully. Response:`, response.data);
    } catch (error) {
      console.error(`Error sending chunk ${i + 1}:`, error.message);
    }
  }

  console.log('Sending JSON completed.');
}

// Exemplo de uso:
const jsonData = {
  // Seu JSON muito grande aqui...
};

const CHUNK_SIZE = 100000; // 100 KB (tamanho de cada chunk em caracteres)

// Dividir o JSON em chunks
const jsonChunks = splitJsonIntoChunks(jsonData, CHUNK_SIZE);

const url = 'https://example.com/api'; // substitua pelo URL correto da API

// Enviar os chunks em várias requisições POST
sendJsonChunks(jsonChunks, url);