首页 > 解决方案 > 通过 nft.storage API 在 IPFS 上发布图像文件 - curl 和 javascript

问题描述

我不是全职编码员,我一直在尝试通过 nft.storage API 将文件发送到 IPFS。我正在尝试发送存储在我的服务器中的图像文件,而不是来自网络表单。

我在我的电脑上使用了如下 curl 功能,它可以工作。

curl -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIsIn..." -H "Content-Type: image/png" --data-binary "@C:/mydoc/beerbee/beerbee-icon.png" --url "https://api.nft.storage/upload"

但是,它不适用于下面的 js 代码。每当我访问内容寻址标识符 URL 时,我唯一得到的是文本“@home/myfolder/file.png”(不是图像),例如 -> 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);
        
});

标签: javascriptfilecurlipfs

解决方案


推荐阅读