Я использую tus-js-client для загрузки файлов с iPad pro на сервер TUS.Все работает нормально, пока я не загружаю файлы> 500-600MB.Когда размер файла превышает 600 МБ, происходит сбой системы.
Error:
[Terminating app due to uncaught exception 'NSMallocException', reason: 'Failed to grow buffer']
В документации tus-js-client говорится, что вы можете начать загрузку с опцией Readable stream.Я думаю, что один из способов решения этой проблемы - создать читаемый поток и отправить его в функцию загрузки.Но я не могу сделать это на реактивном.Я пытался реагировать-native-fetch-blob, response-native-fs, Reaction-native-fs-stream
Проблема на github: https://github.com/tus/tus-js-client/issues/146
const upload = new tus.Upload({ uri: `${RNFS.DocumentDirectoryPath}/images/${item.image}`}, {
endpoint: 'http://192.168.1.5:1080/files/',
retryDelays: [0, 1000, 3000, 5000],
chunkSize: 1 * 1024 * 1024,
resume: true,
metadata: {
name: item.image,
filetype: item.image.substring(item.image.lastIndexOf('.') + 1).toUpperCase(),
copyright: 30
},
onError: (error) => {
console.log('Error upload:', error)
},
onProgress: (uploadedBytes, totalBytes) => {
console.log(`Progress: ${uploadedBytes / totalBytes}`)
},
onSuccess: () => {
console.log('Upload URL:', upload.url)
},
onChunkComplete: (chunkSize, bytesAccepted, bytesTotal) => {
console.log(
`chunkSize: ${bytesTotal} `)
}
})
upload.start()
})