如何计算存储在Google App Engine中的实体大小?

12

有没有一种简单的方法来计算存储在App Engine中的实体的大小?我想知道一个特定实体离达到1MB实体大小上限有多近。

2个回答

18

App Engine将每个实体存储为protobuf。 您可以使用 此处描述的 db.model_to_protobuf() 函数手动将实体转换为 protobuf,然后使用标准的len()方法来确定其大小(以字节为单位)。

示例用法:

from google.appengine.ext import db
sz_in_bytes = len(db.model_to_protobuf(some_entity).Encode())

ndb更新说明

Kekito在下面的评论中指出,对于ndb实体需要采用不同的方法(感谢Kekito!):

len(some_entity._to_pb().Encode())

以上代码似乎不能与ndb或者至少某些ndb属性一起使用(我正在使用压缩的BlobProperty),但是以下代码可以正常工作:len(some_entity._to_pb().Encode()) - new name

4

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接