CloudKit:免费的公共存储和数据传输

Posted

技术标签:

【中文标题】CloudKit:免费的公共存储和数据传输【英文标题】:CloudKit: free public storage and data transfer 【发布时间】:2015-10-02 18:15:00 【问题描述】:

我想了解 CloudKit 免费使用计算,但我不能。

谁能描述40 requests per seconds(每 100.000 个用户 10 个)是什么?我找不到任何定义什么是请求。如果我有 2 个应用程序并且每个应用程序都会同时 ping 我的CloudKit 服务器,它会导致每秒两个请求(对于所描述的时刻)?我如何知道如何在我的应用程序中限制请求以及如何将请求排队,以便稍后在 CloudKit 服务器未达到限制时完成?

2GB data transfer(每位用户 50 mb)呢?我应该如何理解这 50 mb,每秒,每天的永恒?如果我的某个应用的一位用户使用 50 mb 流量会怎样?

如何限制我的应用程序并仍然保持良好的 clint 服务器通信?达到限额时我会收到错误消息,Apple 不会自动收费吗?

我真的很喜欢 CloudKit 的编程简便性,但我有点害怕它可能会完全出错,我会因为误解而受到指控。

我真的很难想象它是如何计算出来的。

【问题讨论】:

【参考方案1】:

我认为,如果您知道可以对这些服务设置使用限制,那么您最大的担忧就会得到解决。如果您已达到此限制,则服务将返回错误,您可以在应用中处理该错误。

40 requests per second 适用于所有用户和设备。如果您有 3600 个用户并且他们都每小时 ping 一次服务器,那么平均大约为 1/秒。虽然这不足以构建像 facebook、instagram 或 twitter 这样的服务,但对于获取天气数据、每日时间表或食品卡车位置可能就足够了。对于多达 4,000,000 名用户,免费套餐将涵盖每个用户最多每三个小时检查一次,且分布均匀。

2GB data transfer 适用于您的所有用户。由于缩放在您拥有 100,000 个用户之前不会生效,因此 2GB 的数据传输对于您起步来说是一个相当不错的数量。由于每个用户可扩展为 50MB,因此很容易计算出您可以信任您的应用程序与服务器通信的程度。如果只有一个用户超过但您仍然低于总使用量,那么您将不会被收费。如果您确实超过了,则需要 0.10 美元/GB 的数据传输。

您可以限制您的应用仅在用户需要为高级服务付费之前进行如此多的通信。如果您允许 50MB/用户/月的数据传输,并让用户知道他们何时接近此限制,他们必须支付,那么您永远不会超过。您还可以在设备上投放广告,这些广告实质上是为服务扩展付费,从而使使用该应用程序的用户比被动用户拥有更多特权,但仍然允许每个人都有基本使用量。

价格在this page 的底部并且相当合理。如果您自己构建并使用 AWS,您肯定可以获得更便宜的价格,但您需要拥有数百万用户和/或有很高的要求才能成为更好的选择。

【讨论】:

很好的答案,但是推送通知(服务器到客户端的通信)呢?这将如何影响我和最终用户的流量?仍然不太确定交通部分。假设我没有 10 万用户,并且本月达到 2GB 的流量,下个月会重置还是建议使用 CloudKit 构建订阅服务? ...如果 4/sec 请求失败,我可以稍后重试而不收取任何费用吗?【参考方案2】:

每秒 40 个请求适用于所有用户和设备。如果你有 3600 个用户,他们都每小时 ping 一次服务器,那将 平均到大约 1/秒。虽然这还不足以建立一个 像 facebook、instagram 或 twitter 这样的服务,它可能是 足以获取天气数据、每日时间表或食品卡车 地点。对于多达 4,000,000 名用户,免费套餐将涵盖每个 用户最多每三个小时检查一次,偶数 分布。

大约 40 个请求/秒的限制

如果这是正确的,我真的不明白为什么论坛里有这么多人说这已经足够了。对于某些应用程序,每小时同步一次可能就足够了,但如果你想在设备之间保持游戏存档文件同步,那么每秒 40 个请求是荒谬的。天气应用?别逗我笑。在 90% 的应用程序中,您需要插入、更新和删除,我想知道一个简单的更新有多少请求......我希望只有 1 个,但我严重怀疑它。

在 Firebase 上没有像这样的请求限制,而且上传是免费的。他们只是向您收取下载费用。

我可能会遗漏一些关于 CloudKit 的东西,因为我没有得到那个荒谬的限制。

【讨论】:

以上是关于CloudKit:免费的公共存储和数据传输的主要内容,如果未能解决你的问题,请参考以下文章

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

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

cloudKit:公共数据库中的 CKFetchRecordChangesOperation

CloudKit公共数据库删除记录

公共 iCloud 数据

了解 CloudKit 限制