【问题标题】:Is it possible to upload a string/js object without having it stored in a file? - IPFS是否可以上传 string/js 对象而不将其存储在文件中? - IPFS
【发布时间】:2018-12-22 07:16:28
【问题描述】:

我一直在玩js-ipfs API,想问是否有人知道 js-ipfs 只支持上传文件/文件夹?有没有办法上传,例如像这样的javascript对象:

{
    heading:"SomeHeading",
    content:"somecontent"
}

或类似的字符串

"{heading:\"SomeHeading\", content:\"somecontent\"}"

到目前为止我已经尝试过:

const ipfs = window.IpfsApi('localhost', 5001, {protocol: 'https'});
const buffer = ipfs.Buffer;

async function uploadToIpfs() {
    let someObject = {
        heading:"SomeHeading",
        content:"someContent"
    };

    let objectString = JSON.stringify(someObject);

    let bufferedString = await buffer.from(objectString);

    await ipfs.add(bufferedString, (err, resp) => {
        console.log(err);
        console.log(resp);
    });
}

但我明白了

对于解决此问题的任何帮助或直接回答是否可以仅上传 js 对象或字符串将不胜感激!

【问题讨论】:

  • 我的回复有点晚了,但我找到了问题的答案。正如@Miguel Mota 下面所说,我应该将{protocol: 'https'} 更改为{protocol: 'http'},因为我在本地主机上。之后出现的另一个问题是我遇到了一个 CORS 错误,我通过在 cmd ipfs config --json API.HTTPHeaders.Access-Control-Allow-Origin "[\"http://localhost:9090\"]" 中运行此命令修复了该错误,其中 http://localhost:9090 是我的应用程序的 http-server。这些resources 也帮助了我很多!

标签: javascript json string file ipfs


【解决方案1】:

我尝试了您的代码,您只需将 protocol 更改为 http,因为您在本地主机上。

{protocol: 'http'}

【讨论】:

    【解决方案2】:

    如果我正确理解您的问题,您想上传任意对象内容;因此,您需要一个抽象 blob 存储。这可以使用ipfs-blob-store 来完成。

    请务必阅读文档,但要明白这一点:

    var ipfsBlobStore = require('ipfs-blob-store')
    
    var options = {
      port: 5001,   // default value
      host: '127.0.0.1', // default value
      baseDir: '/', // default value
      flush: true  // default value
    }    
    var store = ipfsBlobStore(options)
    
    var ws = store.createWriteStream({
      key: 'some/path/file.txt'
    })
    
    ws.write("{heading:\"SomeHeading\", content:\"somecontent\"}")
    ws.end(function() {
      var rs = store.createReadStream({
        key: 'some/path/file.txt'
      })
    
      rs.pipe(process.stdout)
    })
    

    【讨论】:

      猜你喜欢
      • 2021-09-11
      • 1970-01-01
      • 1970-01-01
      • 2022-01-28
      • 1970-01-01
      • 2014-08-28
      • 1970-01-01
      • 2021-04-16
      • 1970-01-01
      相关资源
      最近更新 更多