java - 删除 appengine blobstore 中的孤立 blob

标签 java google-app-engine google-cloud-datastore blobstore

我从数据存储中删除了大量我没有删除的对象 需要(大约 7000 个)。 这些对象中的每一个都有一个与之关联的 blob,由 字符串(blob 键)。

正如您现在可能已经猜到的那样,我忘记删除那些 blob。 现在我没有对它们的任何引用,但我想删除它们。 我似乎找不到办法做到这一点。 任何帮助将不胜感激。

更新 找到了解决方案。

DatastoreService datastore = DatastoreServiceFactory.getDatastoreService();
BlobstoreService blobstoreService = BlobstoreServiceFactory.getBlobstoreService();
List<BlobInfo> blobsToCheck = new LinkedList<BlobInfo>(); 
Iterator<BlobInfo> iterator = null;
if(afterBlobKey == null){
    iterator = new BlobInfoFactory().queryBlobInfos();
}else{
    iterator = new BlobInfoFactory().queryBlobInfosAfter(new BlobKey(afterBlobKey));
}

while(iterator.hasNext()){

    blobsToCheck.add(iterator.next());

}

//Check those blobs if they have reference in datastore
//Delete using blobstoreService.delete(blobKey);

最佳答案

更新 找到了解决方案,BlobInfoFactory().queryBlobInfos() 正是我要找的。

    DatastoreService datastore = DatastoreServiceFactory.getDatastoreService();
    BlobstoreService blobstoreService = BlobstoreServiceFactory.getBlobstoreService();
    List<BlobInfo> blobsToCheck = new LinkedList<BlobInfo>(); 
    Iterator<BlobInfo> iterator = null;
    if(afterBlobKey == null){
        iterator = new BlobInfoFactory().queryBlobInfos();
    }else{
        iterator = new BlobInfoFactory().queryBlobInfosAfter(new BlobKey(afterBlobKey));
    }

    while(iterator.hasNext()){

        blobsToCheck.add(iterator.next());

    }

    //Check those blobs if they have reference in datastore
    //Delete using blobstoreService.delete(blobKey);

关于java - 删除 appengine blobstore 中的孤立 blob,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5362013/

相关文章:

java - 向选项卡添加按钮和可滚动面板 - Java

java - 实现施特拉森算法

java - 事务中的祖先查询(objectify)返回数据 "frozen in time"

java - 数据存储设计 - 如何模拟高效连接

java - 了解数据存储查询对象

java - 在类路径中使用星号通过命令行运行 Java 程序时不起作用

PHP App Engine 部署问题

security - 他们的应用程序之间的谷歌身份验证和授权

google-app-engine - Google App Engine - 邮件收件人限制?

java - 如何在 JPA 和 EJB3 中使用 JDBC ClientInfo