与 Realm 对象服务器共享 blob 的最佳方式

Best way to share blob with Realm Object Server

Realm 移动数据库的 blob 大小限制为 16MB。根据文件:

To store larger amounts of data, either break it up into 16MB chunks or store it directly on the file system, storing paths to these files in the Realm.

如果我们要使用 Realm Object Server 来存储我们的数据,我们应该将数据分成块吗?我们不希望将视频或磁盘映像存储到 Realm,但我们可以看到用户偶尔会添加大文件。

Realm Mobile Platform 不一定能存储非常大的文件。例如,16MB 仍然是要通过无线方式发送的大量数据(尤其是在 3G/4G 连接上)。

正如 EpicPandaForce 指出的那样,您可以将文件托管在第三方系统上,并将身份验证令牌与 URL 一起存储在 Realm 中。该系统与 S3 配合得很好,它允许您创建一个秘密 URL(带有嵌入式访问令牌),有效期为 x

这不需要大量的工作;它只需要在服务器端正确管理 S3 存储桶。使用企业版的 Realm 对象服务器,在设备需要时很容易生成这些 URLs,并且仅在需要时生成很短的时间(通常,您会缓存如此大的文件无论如何都在设备上,所以你不会一直重新下载它们)。

或者,如文档所示,您可以将所有内容存储为 16MB 的块。请注意,这可能会增加您的存储使用量,因为实际的 Realm 文件将包含每个 16MB 块,但交易日志也将包含相同的 16MB 块(以便合并算法可以在服务器端正常运行)。