我删除了数据存储区中的大量对象
要求(约7000个)。
每个对象都有一个与之关联的blob,由a引用
字符串(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);
答案 0 :(得分:11)
UPDATE 找到解决方案,BlobInfoFactory()。queryBlobInfos()就是我要找的。 p>
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);