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
вместо этого это должно помочь, и я страдаю от той же проблемы. Кто-нибудь прошел через что-нибудь подобное раньше? Спасибо!