iOS - Экспорт (более 100) файлов в Google Drive - PullRequest
0 голосов
/ 12 февраля 2019

Мое приложение работает с файлами изображений и аннотаций.Файлы аннотаций - это просто XML файлы, содержащие информацию для каждого изображения.Таким образом, пользователь может иметь, например, набор данных из 100 изображений + 100 файлов аннотаций.

В какой-то момент я хочу, чтобы пользователь мог экспортировать эти файлы в облачный сервис, в идеале iCloud или Google-Drive., чтобы они были доступны для дальнейшей обработки / работы.

Приложение «Файлы» выглядело лучшим кандидатом для этой задачи.Пользователь уже подключил своих облачных провайдеров в приложении «Файлы», и мне не о чем беспокоиться.

 func presentLocationPicker(forExportingFiles urls: [URL]) {
        let documentPicker = UIDocumentPickerViewController(urls: urls, in: .exportToService)
        self.present(documentPicker, animated: true)
 }

Я думал, что это будет легко, но реальность совсем другая.Интеграция Google Диска с приложением Files кажется очень слабой.У меня следующие проблемы с Google Drive:

Blocker 1 - При выборе папки Google Drive, на которую я хочу экспортировать файлы, я получаю следующее системное предупреждение: The Operation Can't Be Completed. Couldn't communicate with the helper application enter image description here

Blocker 2 - При представлении UIDocumentPickerViewController список облачных провайдеров иногда неактивен.

enter image description here

Blocker 3 - Если напрямую из Files App я пытаюсь переместить папку (с 100 элементами, например) в Google Drive, она также не работает.Только некоторые файлы копируются, а не с оригинальной структурой папок.Просто беспорядок.

Итак, мой первый вопрос: я должен сделать что-то другое с UIDocumentPickerViewController, чтобы избежать Blocker 1 ?

Второй вопрос: есть лилюбой другой способ экспортировать несколько файлов (более 100) в учетную запись Google Drive пользователя?У меня нет идей.

1 Ответ

0 голосов
/ 12 февраля 2019

Это со страницы API Google Диска, но я подозреваю, что в SDK действуют те же ограничения.

https://developers.google.com/drive/api/v3/manage-uploads

  • Простая загрузка: uploadType = media.Для быстрой передачи небольшого файла ( 5 МБ или менее ).Чтобы выполнить простую загрузку, см. Выполнение простой загрузки.
  • Многокомпонентная загрузка: uploadType = multipart.Для быстрой передачи небольшого файла ( 5 МБ или менее ) и метаданных, описывающих файл, все в одном запросе.Чтобы выполнить многоэтапную загрузку, см. Выполнение многоэтапной загрузки.

Выделение мое.

Скорее всего, вы захотите разбить ваши запросы, чтобы соответствовать этому.ограничение.

...