3

我正在开发一个基于 Web 的生产力应用程序。所以我认为 Google Drive SDK,特别是Drive Realtime API,将非常适合这个应用程序。

我想我应该将文档存储为带有附加实时模型的快捷方式文件,原因如下。

  • 我想使用实时 API
  • 文档说快捷方式文件提供了与内置应用程序相同的用户体验
  • 我的应用程序制作的文档类型没有标准化格式(因此对它们进行序列化并让人们将它们同步到他们的桌面几乎没有意义)。

但是,我需要嵌入图像(二进制 blob)。我无法将这些存储在实时模型中,因为它不是为大型 blob 设计的。如果有办法将二进制 blob 嵌入到实时模型中,请纠正我。

那么如何将二进制 blob 与附加到快捷方式文件的实时模型相关联呢?

我能想到的唯一方法是将 blob 存储在 blobstore 或隐藏的 appdata 文件夹中。这需要我做一个 cron 工作来垃圾收集 blob,以防它们使用的快捷方式文件被删除。

  • 我是否缺少任何明显的解决方案?
  • 是否适当使用隐藏的 appdata 文件夹?(或者用户是否会删除这些数据并惊讶于他们文件中的所有图像,他们没有删除,都消失了)
  • 删除快捷方式文件时有什么方法可以通知?
  • 我应该多久对 Blob 进行一次垃圾收集?(即检查他们所属的快捷方式文件是否已被删除)
  • 我可以相信快捷方式文件的所有者永远不会改变吗?(如果发生这种情况,我应该如何垃圾收集二进制 blob?)

我想将二进制 blob 存储在 Drive 上(在隐藏的 appdata 文件夹中)。这样,用户就不会为我的应用程序特定的图像存储的驱动器存储付费。我想如果用户购买了云端硬盘存储空间,然后必须为我的应用程序购买特定于应用程序的存储空间,这对他们来说似乎很随意。

4

2 回答 2

2

如果您愿意将元数据文件存储在 appdata 上,则不需要快捷方式。为您在外部存储的每个 blob 触摸 appdata 上的空白文件。使用这些空白文件构建协作功能。

您不必担心 appdata 文件的所有权,因为用户或其他应用程序无法更改它们。

我们目前没有通知系统来推送更改。您可以轮询更改资源以查看是否有任何删除。垃圾收集调度与元数据的大小以及您如何尊重用户的配额有关。用户会意识到他们正在丢失数据,这可能会影响他们正在删除应用程序数据的应用程序。

于 2013-04-11T17:12:33.520 回答
1

您是正确的,您可能不想将二进制 blob 直接存储在 Realtime 文档中,尤其是当它们是大型高质量图像时。这会使模型膨胀,如果尺寸太大,可能会导致问题。

将它们存储在云端硬盘中的其他位置并将它们链接到文档中可能是有意义的。但是,挑战在于您需要确保文档上的所有用户都有权查看他们。出于这个原因,我认为应用程序数据文件夹不会起作用。我认为您无法共享该文件夹中的任何内容,因此协作者将无法看到图像。

您可能只是将文件存储在常规文件夹中。使用正确的 UI,您可以让用户清楚地知道发生了什么,以便他们了解文件存在的原因。

于 2013-04-12T02:59:10.973 回答