0

Every time I tried to upload a directory, it gives me this error
AbortError: The user aborted a request. at abort (C:\users\anik\desktop\app\node_modules\node-fetch\lib\index.js:1418:16) at AbortSignal.abortAndFinalize (C:\users\anik\desktop\app\node_modules\node-fetch\lib\index.js:1433:4) at AbortSignal.dispatchEvent (C:\users\anik\desktop\app\node_modules\event-target-shim\dist\event-target-shim.js:818:35) at abortSignal (C:\users\anik\desktop\app\node_modules\abort-controller\dist\abort-controller.js:52:12) at AbortController.abort (C:\users\anik\desktop\app\node_modules\abort-controller\dist\abort-controller.js:91:9) at AbortSignal.onAbort (C:\users\anik\desktop\app\node_modules\any-signal\index.js:13:16) at AbortSignal.dispatchEvent (C:\users\anik\desktop\app\node_modules\event-target-shim\dist\event-target-shim.js:818:35) at abortSignal (C:\users\anik\desktop\app\node_modules\abort-controller\dist\abort-controller.js:52:12) at AbortController.abort (C:\users\anik\desktop\app\node_modules\abort-controller\dist\abort-controller.js:91:9) at AbortSignal.onAbort (C:\users\anik\desktop\app\node_modules\any-signal\index.js:13:16) { type: 'aborted', message: 'The user aborted a request.' }
I don't understand why this error occurs. I tried debugging but couldn't understood.

app.post("/upload", async (req, res) => {
 
  if(req.files.upload) {
    // console.log(req.files.upload);
    let result = folder_upload(req);
  }

    res.render("transfer");
  
});

async function folder_upload(req) {
  
  const allFiles = req.files.upload;
  const folder = req.body['upload-file-name'];
  console.log(folder);
  let ipfsId;
  allFiles.forEach(function(item) {
    // console.log("item ", item);
    try {
      const fileDetails = {
        path: folder +"/"+ item.name,
        content: item
      }
      const options = {
        wrapWithDirectory: true,
        progress: (prog) => console.log(`received: ${prog}`)
      }
      ipfs.add(fileDetails, options) // === [line 1] ===
        .then((response) => { 
          console.log(response);
          // CID of wrapping directory is returned last
          ipfsId = response[response.length - 1].hash;
          console.log(ipfsId);
          ipfs.setState({ added_file_hash: ipfsId });
        }).catch((err) => {   // === [line 2] ===
          console.error(err);
        });
    } catch (error) {
      console.log("Error exception -", error);
    }
  });
  
}

During debugging, code stops at [line 1] then come down to [line 2] and execute the catch block.

  • 1
    Since you didn't mention which ipfs library you are using in your example, it's very likely your ipfs library doesn't support adding multiple files to upload at the same time. Therefore, when you use ipfs.add for the second file, it will abort the first file upload and throw the error. – iKoala Sep 21 '20 at 06:55
  • He mentioned in the title that he's using `ipfs-http-client` – Marco Ottolini May 13 '21 at 14:40

0 Answers0