No soy programador a tiempo completo y he intentado enviar un archivo a IPFS a través de la API nft.storage. Estoy tratando de enviar archivos de imagen almacenados en mi servidor, no desde un formulario web.
Usé la función curl como se muestra a continuación desde mi PC y funciona.
curl -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIsIn..." -H "Content-Type: image/png" --data-binary "@C:/mydoc/beerbee/beerbee-icon.png" --url "https://api.nft.storage/upload"
Pero, no funciona para el código js a continuación. Lo único que obtuve es el texto "@home/myfolder/file.png" (no una imagen) cada vez que accedo a la URL del identificador de direccionamiento de contenido, como este -> https://bafkreicpceead4w3hsrnyhvkwab233x66wpra57rwqyx5im4jikt4ety3q.ipfs.dweb.link/
document.getElementById("test").addEventListener("click", function() { var url = "https://api.nft.storage/upload"; var xhr = new XMLHttpRequest(); xhr.open("POST", url); xhr.setRequestHeader("Authorization", "Bearer eyJhbGciOiJIUzI1NiIsInR5cC...."); xhr.setRequestHeader("Content-Type", "image/png"); xhr.onreadystatechange = function () { if (xhr.readyState === 4) { console.log(xhr.status); console.log(xhr.responseText); }}; var data = "@home/myfolder/file.png"; xhr.send(file); });