2013-04-08 47 views
0

我需要每天做10,000次数据存储读取和3000次数据存储写入,这会花费我一些钱。如何更新/写入存储在blobstore中的文本文件2

我目前的解决方案只是将文本文件上传到GAE并在每个请求中读取文本文件。

我的文本文件是

productid--- price--- description---xxx----xxxx-xxxx 

但是,我需要的是,我也想写/编辑/更新的文本文件。可能吗?

对我有这些建议吗?我不想使用数据存储。

+0

定义“很多”和“一些”。您是否已经使用了memcache?你的数据看起来如何?它会更适合Cloud SQL吗? – 2013-04-08 17:11:29

+0

我修改我的问题,使其更清楚。我没有尝试memcache和云SQL,将尝试它。 thanx – John 2013-04-08 17:22:43

+0

一旦最终完成的斑点不能再写入。你为什么不想使用数据存储?它非常适合结构化和可变数据。 – 2013-04-08 19:47:31

回答

1

如果你要使用Blob存储来存储你的文件,那么你将无法修改它们,因为斑点是immutable在谷歌应用程序引擎:

他们之后

斑点不能被修改创建,尽管它们可以被删除。

您应该使用的数据存储,而不是和更具体的ndb.TextProperty存储的文本文件,因为没有长度的限制,你可以轻松地创建/更新/删除。由于每天都有必要做所有这些请求,因此您不得不为此付费。只要确保您遵循最佳做法,并看看Appstats,以便您能够监控您的读/写。

+0

'ndb'没有最大实体大小吗?我将一些文本文件存储在blob中,因为它们大于'db'的最大实体大小。 – 2013-04-09 00:23:52

+0

thanx。我以前试过ndb.TextProperty,并且我真的花了很多数据读取操作。 – John 2013-04-09 03:25:04

+0

@John在'ndb.TextProperty'中没有限制(查看链接中的描述),并且在后端,我认为他们将它们存储为blob ..它只是隐藏给你..从长远来看,你将会更好的使用TextProperty,而不是通过Files API来处理你自己的blob ... – Lipis 2013-04-09 09:08:27

1

您可以使用文件API来创建斑点。如前所述,您不能编辑blob,但通过使用files API创建新的blob,将数据从原始blob复制/编辑到新blob,然后替换旧blob,您可以实现基本相同的操作与新的一个。

它的工作原理,但它并不理想。文件API似乎会导致相当数量的异常,因此您需要确保在代码的该部分中具有良好的错误检查。

+0

thanx很多。好主意 – John 2013-04-09 03:23:31

相关问题