По договоренности
Постановка задачи
Написать нативный метод на Objective-C, который реализует сжатие файлов в tar, используя библиотеку DCTar в память.
После сжатия выполняет POST-запрос и отправляет этот файл на REST API сервис.
Отправку данных можно выполнять как нативно, так и через библиотеку для ReactNative
Параметры метода:
- path путь, из которого забирать файлы
- [guid, guid,..., guid] массив guid, который содержит в себе имена файлов и директорий, которые нужно отправлять. Файлы имеют вид guid.smd, директории хранят в себе файлы других названий. Необходимо выполнять отправку всех этих файлов.
Пример директории приведен в архиве directory.zip
Требования:
- Выполнять сжатие без использования файловой системы. Не нужно копировать файлы и т.д
- От вас нужно предложение по реализации метода отправки нужно понимать прогресс отправки, метод при отправке должен его отдавать.
Или нужен пример используя ReactNative библиотеку react-native-fetch-blob
- Данные отправляются потоком в кодировке base64 с отображением прогресс-бара. По сути, является обратный процессом, обеспеченным в примере
- Метод должен нормально отправлять файлы больших размеров (до 100мб) с обработкой ошибок.
Если потоковая передача на сервер будет выполняться средствами ReactNative, то метод отправки должен быть в виде аналогичному следующему:
await RNFetchBlob.fetch('POST', this.getUrl("documents/" + token),
{'Content-Type': 'application/json',}, JSON.stringify(filtered))
.progress((received, total) => {
console.log('progress', received / total)
})
.then((data) => {
return NativeModules.ISMCommon.untar(data.text(),
RNFS.DocumentDirectoryPath);
}