Одной из функций моего веб -приложения является копирование файла из A до b на машине пользователя, не в opfs . Пункт назначения (B) представляет собой монтированный NFS, поэтому скорость записи - это скорость загрузки в Интернете. < /P>
Размер файла варьируется от 1 ГБ до 200 ГБ. < /P>
< P> Вот мой код для копирования файла: < /p>
Код: Выделить всё
// Source file
const file = await fileHandle.getFile();
// Destination
const fileDestination = await location.getFileHandle(file.name, { create: true });
const writable = await fileDestination.createWritable();
try {
await writable.write(file);
await writable.close();
}
catch (e) {
console.error(e);
}
Я заметил, что скорость копирования приведенного выше кода намного медленнее, чем ручная копия с ctrl + c и ctrl + v . Он колеблется в 2 до 10 раз медленнее. > В реальном файле на диске нет изменений, пока поток не будет закрыт. Изменения обычно записываются во временный файл. временный файл. И когда я закрываю поток, временный файл перемещается в фактический пункт назначения файла? Где находится этот временный файл? < /Li>
Как я могу избежать этого? Могу ли я написать непосредственно в файл назначения? -JS PrettyPrint-Override ">
Код: Выделить всё
await file.stream().pipeTo(writable);
Подробнее здесь: https://stackoverflow.com/questions/794 ... ite-method
Мобильная версия