Search code examples
node.jsipfsjs-ipfs

how do i create directory with ipfs-http-client with infura gateway?


Trying to create a directory with infura. this is from the docs but it does not work...

const run = async () => {

    const projectId = 'xxx';
    const projectSecret = 'xxx';
    const auth =
        'Basic ' + Buffer.from(projectId + ':' + projectSecret).toString('base64');

    const ipfsClient = require('ipfs-http-client');
    const client = ipfsClient.create({
        host: 'ipfs.infura.io',
        port: 5001,
        protocol: 'https',
        headers: {
            authorization: auth,
        },
    });
    var dir = await client.files.mkdir('/example')
    console.log(dir);
   // LOG: ipfs method not supported
}

using curl also does not work

curl -X POST -u "xxx:xxx" "https://ipfs.infura.io:5001/api/v0/files/mkdir?arg=/ipfs-examples-dir"
// LOG: ipfs method not supported

what am i missing or doing wrong?


Solution

  • Hey I ran into this problem a while ago, and found a solution. Not sure if the IPFS HTTP Client has the functionality but this works for me:

    const res = await axios.post("https://ipfs.infura.io:5001/api/v0/add?pin=true&wrap-with-directory=true", data, {
            headers: {
               Authorization: auth
            }
        })