首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >清理AppEngine BlobStore

清理AppEngine BlobStore
EN

Stack Overflow用户
提问于 2015-04-24 16:26:11
回答 2查看 140关注 0票数 3

我的AppEngine服务器有很多没有在BlobStore中使用的孤立的blobs。我想编写代码来迭代所有的blobs,检查它们是否没有被使用,然后删除。我找不到在BlobStore上迭代的方法。这个是可能的吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-04-24 16:58:52

您可以通过数据存储查询列出https://cloud.google.com/appengine/docs/go/blobstore/reference#BlobInfo (尽管这种查询最终是一致的)。

票数 1
EN

Stack Overflow用户

发布于 2015-04-24 19:52:48

下面是在golang中迭代blobs的代码解决方案:

代码语言:javascript
复制
c.Infof("Iterating over blobs")
q := datastore.NewQuery("__BlobInfo__")

// Iterate over the results.
total := 0
t := q.Run(c)
for {
        var bi blobstore.BlobInfo
        _, err := t.Next(&bi)
        if err == datastore.Done {
                break
        }
        if err != nil && isErrFieldMismatch(err) == false {
                c.Errorf("Error fetching next Blob: %v", err)
                break
        }
        // Do something with the Blob bi
        c.Infof("Got blob [%v] of size [%v]", bi.ContentType, bi.Size)
        total++
        if total > 100 { break }
}
c.Infof("Iterating Done")

您还需要使用此函数来忽略字段不匹配错误:

代码语言:javascript
复制
func isErrFieldMismatch(err error) bool {
    _, ok := err.(*datastore.ErrFieldMismatch)
    return ok

}

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29852719

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档