fs.stat EACCESS cvfs

У меня есть что-то вроде этого кода:

const access = (filePath: string) => new Promise((resolve) => {
  try {
    fs.access(filePath, (err) => resolve(err ? {access: false, error: err} : {access: true}));
  } catch (err) {
    resolve({access: false, error: err});
  }
});
const stats = (filePath: string) => new Promise((resolve, reject) => {
  fs.stat(filePath, (err, stats) => err ? reject(err) : resolve(stats));
});

Затем я использую их в своей асинхронной "основной" функции, например:

try {
  if ((await access(fPath)).access === true) {
    const fileStats = await stats(fPath);
    ...
  }
} catch (err) {
  console.log(err.message);
}

Он работает, как и ожидалось, на моем Mac и сервере Linux. Но тот же сервер Linux имеет общий смонтированный том, используя CVFS и, когда пользователь загружает файл с правами R/W только для себя, ошибка EACCESS не обнаруживается и приводит к сбою процесса.

Я также пытался написать это с .then а также .catch вместо этого это должно помочь, и я страдаю от той же проблемы. Кто-нибудь прошел через что-нибудь подобное раньше? Спасибо!

0 ответов

Другие вопросы по тегам