В настоящее время я разрабатываю систему для загрузки нескольких изображений на сервер из приложения. Файлы будут сохранены на локальном устройстве, и текущая идея состоит в том, чтобы разделить их на куски, а затем загрузить их на сервер, ожидая сообщения об успешном завершении перед загрузкой следующего.
Этот процесс должен быть бесшовным для пользователя, он должен нажать кнопку, чтобы отправить все изображения, а затем закрыть приложение и продолжить его в фоновом режиме. С iOS 7 я видел, что вы можете передавать свои загрузки в новый API NSURLSession и иметь дело с задачей загрузки независимо от вашего приложения.
Мне было интересно, знает ли кто, насколько надежна эта передача. Если я передам ему весь образ, что произойдет, если интернет-соединение упадет наполовину? Повторяет ли служба переноса фона позднее? Идея заключается в том, что мы можем загрузить изображение, и если он не пройдет половину пути, мы можем просто продолжить с этой точки позже, когда соединение возобновится.
Одна из идей заключалась в том, чтобы разделить файлы на куски, а затем передать все куски в виде отдельных NSURLSessionUploadTasks и просто предположить, что все они будут отправлены на сервер в конце концов.
Другой должен был отправить первый фрагмент, используя:
uploadTaskWithRequest:fromData:completionHandler:
И затем в завершенииHandler, чтобы отправить следующий фрагмент. Моя проблема заключается в том, что если в фоновом режиме следующий фрагмент будет иметь
@property BOOL discretionary = true
что означает, что он будет отправлять только через Wi-Fi при подключении. Мне нужно, чтобы это работало во всех сетях и было в состоянии справиться с перебоями.
Мне не нужен код, просто совет, если это правильный способ добиться этого.