Большой файл разделен на куски в браузере (с file.slice), и каждый кусок отправляется с Fetch () на сервер, а также некоторую другую информацию, такую как имя файла, индекс кусок, общее количество кусочков. < /p>
Это то, как мой дено -запрос Handler для кусочка выглядит: < /p>
Это и мой Deno запрос Handler для кусочка: < /p>
это так: < /p>
//
const pending = new Map();
const chunkDir = path.join(`chunks_${query.name}`);
let numUploaded = pending.get(chunkDir) ?? 0;
const chunkPath = path.join(chunkDir, String(i));
await Deno.writeFile(chunkPath, bytes, { mode: 0o644 });
numUploaded++;
pending.set(chunkDir, numUploaded);
if (numUploaded !== query.numChunks) {
return { completed: false };
}
// this is the last chunk, combine all chunks together in finalFile
const finalFile = query.name;
const fh = await Deno.create(finalFile);
for (let i = 0; i < query.numChunks; i++) {
const bytes = await Deno.readFile(path.join(chunkDir, String(i)));
awai fh.write(bytes);
}
fh.close();
pending.delete(chunkDir);
await Deno.remove(chunkDir, { recursive: true });
return { completed: true };
< /code>
Таким образом, он помещает каждый кусок в файл, и когда он имеет все куски, он соединяет их в конечный файл. Это позволило бы избежать много дополнительных чтений и пишет на диске.>
Подробнее здесь: https://stackoverflow.com/questions/794 ... fficiently
Эффективно обрабатывать большую загрузку файлов в DENO ⇐ Javascript
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Как безопасно обрабатывать загрузку файлов в специальном плагине WordPress?
Anonymous » » в форуме Php - 0 Ответы
- 22 Просмотры
-
Последнее сообщение Anonymous
-