我的应用程序可以处理图片和注释文件。注释文件只是包含每张图片信息的 XML
文件。这样,用户就可以拥有包含 100 张图片 + 100 个注释文件的数据集。
在某些时候,我希望用户能够将这些文件导出到云服务,最好是 iCloud 或 Google-Drive,以便它们可用于进一步处理/工作。
文件应用程序看起来是执行此任务的最佳人选。用户已经在文件应用程序中连接了他们的云提供商,我几乎不需要担心任何事情。
func presentLocationPicker(forExportingFiles urls: [URL]) {
let documentPicker = UIDocumentPickerViewController(urls: urls, in: .exportToService)
self.present(documentPicker, animated: true)
}
我以为这很容易,但现实却大不相同。 Google Drive 与文件应用程序的集成似乎非常薄弱。我在使用 Google 云端硬盘时遇到以下问题:
拦截器 1 - 当选择我想要导出文件的 Google 云端硬盘文件夹时,我收到以下系统警报:操作无法完成。无法与帮助程序应用程序通信
Blocker 2 - 呈现 UIDocumentPickerViewController
时,云提供商列表有时会显示为灰色。
Blocker 3 - 如果我直接从文件应用
尝试将文件夹(例如包含 100 个项目)移动到 Google 云端硬盘,它也不起作用。仅复制部分文件,而不是原始文件夹结构。只是一团乱。
所以我的第一个问题是:我是否应该对 UIDocumentPickerViewController
做一些不同的事情来避免 Blocker 1?
第二个问题是:是否有其他方法可以将多个文件(超过 100 个)导出到用户的 Google 云端硬盘帐户?我没主意了。
最佳答案
这是来自 Google Drive API 页面,但我怀疑 SDK 也受到同样的限制。
https://developers.google.com/drive/api/v3/manage-uploads
- 简单上传:uploadType=media。用于快速传输小文件(5 MB 或更少)。如需执行简单上传,请参阅执行简单上传。
- 分段上传:uploadType=multipart。用于快速传输小文件(5 MB 或更少)和描述文件的元数据,所有这些都在一个请求中完成。要执行分段上传,请参阅执行分段上传。
强调我的。
您可能希望分解您的请求以适应该限制。
关于iOS - 将(100 多个)文件导出到 Google 云端硬盘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54658046/