JavaScript — Какой второй элемент в массиве в ответе обратного вызова ipfs.add()?

#javascript #node.js #ipfs

#javascript #node.js #ipfs

Вопрос:

У меня есть следующий файл, загруженный в Express.js API, использующий мультер

 [ { fieldname: 'file',
    originalname: 'file.pdf',
    encoding: '7bit',
    mimetype: 'application/pdf',
    destination: 'temp/',
    filename: 'b9e10b5ecce35483ff38c0e83b41a9f5',
    path: 'temp/b9e10b5ecce35483ff38c0e83b41a9f5',
    size: 456904 } ]
  

Я передал его в протокол IPFS с помощью ipfs.add(), используя следующую функцию

 ipfs.add({
  path: listItem.path,
  content: fileBuffer,
}, (err, file) => {
  if (err) reject(err);
  console.log(file)
});
  

Который в console.log() возвращает следующий вывод

 [ { path: 'temp/b9e10b5ecce35483ff38c0e83b41a9f5',
    hash: 'QmUNLLsPACC***',
    size: 4 },
  { path: 'temp',
    hash: 'QmfQjRQnQkV***',
    size: 82 } ]
  

Мой вопрос в том, почему появляется второй элемент, если предполагается, что он просто добавляет PDF-файл, и почему в качестве пути к нему указана моя временная папка, она загружает все внутри себя?

Ответ №1:

Это автоматически созданный каталог для хранения файла. Путь, который вы передаете, имеет temp/ в начале, так что этот каталог создан.

Взято непосредственно из документации по .add() :

Обратите внимание, что промежуточные каталоги в путях к файлам будут автоматически созданы и возвращены в ответе вместе с файлами: