leo*_*vlt 1 python google-cloud-datastore gcloud-python google-cloud-python
我设法在python中使用google.cloud.datastore创建或修改数据存储实体,但是当我在浏览器中登录我的Cloud Platform项目并检查条目时,看起来它的所有属性都是加密的(它们看起来像"Rm9vIEJhcg=="等 - 如果我从浏览器创建它,我可以正常看到).
我正在使用服务帐户标识的json文件进行身份验证:
self.client = datastore.Client()
self.client = self.client.from_service_account_json(cert_file.json)
Run Code Online (Sandbox Code Playgroud)
服务帐户对整个项目具有"编辑"权限.将其更改为"所有者",这是我用于登录的Gmail帐户的设置,但不能解决问题.
我像这样创建实体:
with self.datastore.client.transaction():
entity = Entity(Key("key", project="project"))
entity["property"] = "data"
self.datastore.client.put(entity)
Run Code Online (Sandbox Code Playgroud)
有什么方法可以使用python库修改的条目可以从浏览器站点读取吗?
小智 5
该值未真正加密,而是使用Base64编码.原因是该值存储为Blob(原始字节),而不是文本/字符串.控制台以Base64格式显示Blob字段.当用Base64解码时,值Rm9vIEJhcg ==是Foo Bar.
我对Python没有太多的了解,但请查看官方文档中的注释:
将实体保存到后端时,在编码为UTF-8后,将使用"text_value"字段保存"text"(Python2中的unicode,Python3中的str)的值.从后端检索时,这些值将再次解码为"文本".将使用'blob_value'字段保存"bytes"(Python2中的str,Python3中的字节)的值,而不使用任何解码/编码步骤.
根据您使用的Python版本,调整数据的数据类型,并解决问题.
| 归档时间: |
|
| 查看次数: |
497 次 |
| 最近记录: |