Gau*_*rav 4 java google-app-engine blobstore google-cloud-datastore
我从数据存储区中删除了大量不需要的对象(大约7000个).每个对象都有一个与之关联的blob,由String(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);
Run Code Online (Sandbox Code Playgroud)
Gau*_*rav 11
UPDATE找到解决方案,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);
Run Code Online (Sandbox Code Playgroud)