TUS-JS-Client для React-Native - сбой при загрузке больших файлов - PullRequest
0 голосов
/ 03 апреля 2019

Я использую 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()
})
...