blobstore API에는 모든 blob을 나열하는 기능이 없습니다. 이 목록을 가져 와서 모든 얼룩을 삭제하려면 어떻게해야합니까?Go에서 앱 엔진의 모든 얼룩을 삭제하려면 어떻게해야하나요?
2
A
답변
5
이동을위한 appengine의 blobstore API는이를 수행 할 방법이 없습니다. 대신 데이터 저장소를 사용하여 __BlobInfo__
엔티티를 appengine.BlobInfo
으로 가져 오십시오. API에 BlobKey field이 있다고 주장 되더라도 채워지지 않습니다. 대신 반환 된 키의 문자열 ID를 사용하여 appengine.BlobKey
에 전송하면 blobstore.Delete
으로 전달됩니다.
"/ tasks/delete-blobs"의 처리기는 루프에서 한 번에 20KB의 모양을 모두 삭제할 때까지 삭제합니다. 또한 커서는 여기에 사용되지 않습니다. 나는 __BlobInfo__
이 특별하고 커서를 지원하지 않는다고 생각합니다. (사용하려고 시도했을 때 아무것도하지 않았습니다.)
func DeleteBlobs(w http.ResponseWriter, r *http.Request) {
c := appengine.NewContext(r)
c = appengine.Timeout(c, time.Minute)
q := datastore.NewQuery("__BlobInfo__").KeysOnly()
it := q.Run(ctx)
wg := sync.WaitGroup{}
something := false
for _i := 0; _i < 20; _i++ {
var bk []appengine.BlobKey
for i := 0; i < 1000; i++ {
k, err := it.Next(nil)
if err == datastore.Done {
break
} else if err != nil {
c.Errorf("err: %v", err)
continue
}
bk = append(bk, appengine.BlobKey(k.StringID()))
}
if len(bk) == 0 {
break
}
go func(bk []appengine.BlobKey) {
something = true
c.Errorf("deleteing %v blobs", len(bk))
err := blobstore.DeleteMulti(ctx, bk)
if err != nil {
c.Errorf("blobstore delete err: %v", err)
}
wg.Done()
}(bk)
wg.Add(1)
}
wg.Wait()
if something {
taskqueue.Add(c, taskqueue.NewPOSTTask("/tasks/delete-blobs", nil), "")
}
}
관련 문제
- 1. Google지도에서 아이콘을 삭제하려면 어떻게해야하나요?
- 2. 힘내 병합을 삭제하려면 어떻게해야하나요?
- 3. Xcode : 모든 문서를 지우지 않고 iPhone에서 디버그 앱을 삭제하려면 어떻게해야하나요?
- 4. Mongoid에서 임베디드 문서를 삭제하려면 어떻게해야하나요?
- 5. 동영상에서 YouTube 로고를 삭제하려면 어떻게해야하나요?
- 6. github에서 파일이나 폴더를 삭제하려면 어떻게해야하나요?
- 7. 기존 스카이프 연락처를 삭제하려면 어떻게해야하나요?
- 8. Google 앱 엔진의 비밀번호 암호화 및 해독
- 9. 앱 엔진의 병렬 처리
- 10. 앱 엔진의 Bitbucket 커넥터
- 11. 구글 앱 엔진의 phpBB
- 12. Android 앱에서 기존 ID를 삭제하려면 어떻게해야하나요?
- 13. 셀렌으로 Google 크롬 쿠키를 삭제하려면 어떻게해야하나요?
- 14. iOS 기기 목록에서 iOS 기기를 삭제하려면 어떻게해야하나요?
- 15. 앱 엔진의 사용자 데이터 관리
- 16. iOS에서 키보드 캐시를 지우거나 삭제하려면 어떻게해야하나요?
- 17. Android 앱에서 Facebook 게시물을 삭제하려면 어떻게해야하나요?
- 18. Google Web Designer에서 레이어/항목을 삭제하려면 어떻게해야하나요?
- 19. 내가 개발 한 Facebook 앱을 삭제하려면 어떻게해야하나요?
- 20. Google지도 API v3지도에서 길 찾기를 삭제하려면 어떻게해야하나요?
- 21. Android에 사전 설치된 앱을 삭제하려면 어떻게해야하나요?
- 22. Git repo에서 큰 파일을 삭제하려면 어떻게해야하나요?
- 23. Google 월렛에서 테스트 거래를 삭제하려면 어떻게해야하나요?
- 24. Google 앱 엔진의 쿼리 문제
- 25. 단지 구글 앱 엔진의 검색
- 26. Google 앱 엔진의 기본 키
- 27. Google 앱 엔진의 임시 저장소
- 28. Google 앱 엔진의 본질은 무엇입니까?
- 29. 앱 엔진의 모바일 하위 도메인
- 30. Google 앱 엔진의 트랜잭션 삽입물