我注意到Beta,导出和导入服务中有一个新的数据存储功能.
据我了解,Firestore在数据存储区下运行.是否可以在Firestore中使用这种新的导出和导入功能?
如果没有,是否有计划创建自定义备份并将其还原为(不同)项目的功能?
在我的GAE应用程序(Python)中,我基于host请求对象的一部分实现了多租户和多站点支持.
例如,www.foo.com/index.html并且www.bar.com/index.html都由相同的应用程序处理(例如myapp.appspot.com).应用程序读取主机值,然后决定使用哪个命名空间和站点配置.只要应用程序直接从用户代理接收请求,这就很有用.
但是,我想使用Channel API,但是存在一个问题,因为请求来自原始用户代理/_ah/channel/connected/并且/_ah/channel/disconnected/不是来自原始用户代理.相反,请求具有Host: myapp.appspot.com参数to=myapp.appspot.com.(该from参数是我期望的令牌.也www.foo.com/_ah/channel/jsapi被重定向到一个没有记录的talkgadget服务器,但似乎是预期的.)
我假设,问题是由channel.js不使用原始主机调用我的应用程序的代码引起的,例如www.foo.com/_ah/channel/connected.相反,它使用一个talkgadget.google.com主机(据我所知)将调用我的应用程序,但使用myapp.appspot.com,忽略原始主机,所以我不能使用请求的host值为我的目的.
作为一种解决方法,我可以想出一种将主机信息包含在通道令牌中的方法,因此当我connected和disconnected处理程序收到令牌时,他们可以使用令牌代替.
但是,我想知道是否有更好的方法,我仍然可以获得原始主机名(例如www.foo.com)请求/_ah/channel/connected/和/_ah/channel/disconnected/.有任何想法吗?
这是我到目前为止所尝试过的(没有任何成功):
将自定义域主机名添加到JS src属性:
<script type="text/javascript" src="//www.foo.com/_ah/channel/jsapi"></script>
Run Code Online (Sandbox Code Playgroud)
我还尝试手动覆盖通道套接字的base-url,建议如下:https://stackoverflow.com/questions/16558776/google-app-engine-channel-api-same-origin-policy
<script type="text/javascript">
onOpened = function() {
// TODO
};
onMessage = function() {
// TODO
};
onError = function() {
// TODO …Run Code Online (Sandbox Code Playgroud) 我已阅读有关Firestore 上的事务更新操作的文档。根据配额和限制,交易只有两个限制:
- 交易的最大大小:10 MiB
- 交易时限:270秒,60秒空闲过期时间
没有明确提到与事务相关的限制,在事务期间可以读取和/或修改多少文档或集合,或者对发生事务更新的集合是否存在任何其他约束。
这是否意味着,只要更新保持在这些限制和其他一般限制范围内,客户端就可以对最多 500 个文档(每个文档位于不同的集合中)进行事务更新?
如果客户端在一个事务中读取多个文档,但只更新其中一个 - Firestore 是否仍然(静默)写入未修改的文档(用于序列化等)...所以我必须考虑每次写入 1 次的写入限制每秒的文档数,即使对于客户端未明确修改的文档也是如此。
PS:我问的原因是,Datastore 的事务限制为 25 个实体组,并且还会看到实体(“文档”)中的热点,这些热点在许多写入事务中是只读的。例如,请参阅Dan McGrath 的回答。我只是想知道 Firestore 具有哪些 Datastore 特征,并且在设计 Firestore 数据库时必须考虑这些特征。
database firebase google-cloud-datastore google-cloud-platform google-cloud-firestore
根据文档:
Cloud Shell 提供 5 GB 的免费永久磁盘存储,作为
$HOME虚拟机实例上的目录安装。
我需要更多(付费)存储空间,但我可以从 Cloud Shell 环境访问这些存储空间,并且该存储空间在我的会话中保持不变。它主要用于存储 git 存储库和图像的本地克隆。我将是唯一访问这些文件的人。
看来 5 GB 存储是一个硬性限制,因此它不会动态扩展并向我收取超出的费用。可以使用升压模式,但这不会影响存储大小。而且我也无法使用自定义 Cloud Shell 环境配置更多存储。我不知道是否可以将另一个 GCE 永久磁盘安装到我的$HOME. 我正在考虑按照此答案中的建议使用gcs-fuse,但我不确定它是否适合 git 存储库。
有什么方法可以在 Cloud Shell 中提供更多可用存储空间吗?