CloudKit - 通过 URL 在用户之间共享文件

Posted

技术标签:

【中文标题】CloudKit - 通过 URL 在用户之间共享文件【英文标题】:CloudKit - Share Files between Users via a URL 【发布时间】:2015-01-14 01:52:49 【问题描述】:

使用 CloudKit 在用户之间共享文件的最简单方法是什么?

这个框架 (https://github.com/iRareMedia/iCloudDocumentSync) 是在 CloudKit 之前发布的,它支持一种简单的分享方式:你得到一个 URL,你可以发送给另一个用户,他可以直接下载你与他分享的内容。

新的 CloudKit 是否提供类似(甚至更好)的功能?

【问题讨论】:

【参考方案1】:

您可以通过创建一个包含 CKAsset 的 CKRecord 来解决此问题,该文件是您要共享的文件。您需要该 CKRecord 的唯一标识符。您可以为此使用recordId。然后为您的应用设置深度链接。这似乎是一个很好的工具:https://github.com/usebutton/ios-deeplink-sdk 然后只需创建一个包含该唯一标识符的 deplink。当您使用此类链接打开您的应用程序时,您可以下载 CKRecord,您将在 CKAsset 中拥有该文件。

【讨论】:

这似乎不起作用。唯一的记录 id 名称似乎不足以找到记录。即使我将其复制并粘贴进去,我也会收到 Error Fetching Record 错误。【参考方案2】:

这看起来不太可能,主要是因为 CloudKit 不是文档 API。与您链接到的项目共享文档依赖于[NSFileManager URLForPublishingUbiquitousItemAtURL:expirationDate:error:]。该方法适用于保存到当前 iCloud 帐户的文档。

由于 CloudKit 更像是一个数据库 API,所以很难说 URL 代表什么。一个记录?也许,如果您定义某种格式以在其数据存储之外下载单个记录。 CKAsset 可能更有意义,但目前 Apple 尚未添加该功能。

与 iCloud 不同,CloudKit确实可以选择让任何使用该应用程序的人都可以使用公共数据。根据您要完成的工作,这可能是您需要的替代方案。否则,您现在似乎无法从 CloudKit 中进行共享。

【讨论】:

以上是关于CloudKit - 通过 URL 在用户之间共享文件的主要内容,如果未能解决你的问题,请参考以下文章

CloudKit 在用户之间共享私有容器

您可以在不同应用程序之间共享 CloudKit 上的数据吗

CloudKit acceptShare 错误 - “无法获得共享身份集”

如何在 CloudKit 中存储对共享记录的引用

CloudKit 分享

UICloudSharingController 不显示/不与 CloudKit 应用程序一起使用