es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

No se puede enviar un flujo legible con el SDK de Pinata a IPFS – 400 solicitud incorrecta y Rechazo no controlado.

Debido a la naturaleza de mi proyecto, tengo una dataURL de imagen (NO es un archivo de imagen real) que estoy intentando subir a IPFS a través del SDK de Pinata. He convertido la dataURL de imagen en un buffer (array) y he intentado 2 métodos diferentes pero ninguno de ellos funciona. Aquí está mi código:

MUESTRA 1

var myBlob = new Blob([new Uint8Array(myBuffer)]);
var myReadableStream = myBlob.stream()
pinata.pinFileToIPFS(myReadableStream)

ERROR: Rechazo no tratado (TypeError): fuente.on no es una función

MUESTRA 2

var myBlob = new Blob([new Uint8Array(myBuffer)]);

var myHeaders = new Headers();
myHeaders.append("pinata_api_key", "MI_LLAVE");
myHeaders.append("pinata_secret_api_key", "MI_LLAVE_SECRETA");

var formdata = new FormData();
formdata.append("test", myBlob);

var requestOptions = {
    method: 'POST',
    headers: myHeaders,
    body: formdata,
    redirect: 'follow'
};

fetch("https://api.pinata.cloud/pinning/pinFileToIPFS", requestOptions)
    .then(response => response.text())
    .then(result => console.log('resultado', result))
    .catch(error => console.log('error', error));

ERROR: Solicitud incorrecta 400, resultado {“error”:”Campo inesperado”}

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Hay algunas posibles razones por las cuales el código no está funcionando. Un problema potencial podría ser que el array del buffer no esté correctamente formateado, lo que puede causar errores al crear el Blob o al cargar los datos. Otro problema podría estar relacionado con el SDK o API de Pinata, los cuales podrían no ser capaces de manejar ciertos tipos de datos o solicitudes.

    Para solucionar este problema, podrías intentar los siguientes pasos:

    1. Verifica que la dataURL de la imagen esté correctamente formateada y pueda ser convertida en un array de buffer. Puedes utilizar console.log() para visualizar el contenido del array y asegurarte de que coincida con el formato esperado.

    2. Revisa la documentación del SDK y API de Pinata para ver si hay algún requisito o limitación específica para el tipo de dato que estás intentando cargar. Por ejemplo, algunos APIs pueden requerir un formato o encoding de archivo específico, o podrían no soportar ciertos tipos de datos.

    3. Intenta usar un archivo con un formato o encoding distinto para ver si eso resuelve el problema. Por ejemplo, podrías intentar codificar el dataURL de la imagen como base64 o utilizar un algoritmo de compresión diferente.

    4. Si ninguno de los pasos anteriores funciona, podrías querer contactar al equipo de soporte de Pinata o buscar ayuda de otros desarrolladores que tengan experiencia trabajando con el SDK y API de Pinata. Podrían proveerte mayor información sobre el problema y ayudarte a encontrar una solución.

Comments are closed.