GoogleAppEngine에서 blob을 저장하고 제공하려고합니다.BlobKey를 사용하여 Google AppEngine의 BlobStore에서 blob 찾기
// Save the data as a blob
final FileService fileService = FileServiceFactory.getFileService();
final AppEngineFile file = fileService.createNewBlobFile("application/zip", "nameOfSavedFile");
final FileWriteChannel writeChannel = fileService.openWriteChannel(file, true);
writeChannel.write(ByteBuffer.wrap(data));
writeChannel.closeFinally();
// Load the blob data
Query query = new Query("__BlobInfo__");
query.addFilter("filename", FilterOperator.EQUAL, "nameOfSavedFile");
DatastoreService datastore = DatastoreServiceFactory.getDatastoreService();
PreparedQuery pq = datastore.prepare(query);
List<Entity> entList = pq.asList(FetchOptions.Builder.withLimit(1));
String blobKeyString = entList.get(0).getKey().getName();
BlobstoreService blobStoreService = BlobstoreServiceFactory.getBlobstoreService();
BlobKey blobKeyLoaded = new BlobKey(blobKeyString);
blobStoreService.serve(blobKeyLoaded,response);
일단 위의 코드를 실행하면 작동하는 것 같습니다. 그러나 기존 파일을 동일한 이름의 새 파일로 덮어 쓰려는 의도로 같은 코드를 다시 실행하면 이전 파일이 제공됩니다.
누구든지 이전 파일을 새 파일로 덮어 쓰게하는 방법을 설명 할 수 있습니까?
감사합니다.
blobStoreService.delete (blobKeyLoaded)를 사용하여 먼저 blob을 삭제하려고하면; 그런 다음 동일한 파일 이름으로 새 BLOB를 저장 한 다음 해당 BLOB를로드합니다.이 오류가 발생합니다. 심각도 : BLOB를 찾을 수 없습니다. 더 좋은 방법이 있습니까? –
itgiawa
각 새로운 blob blobstore blob은 고유 한 키가 될 것입니다.이를 피할 방법이 없습니다. –