2011-09-06 7 views
2

BlobStore에서 직접 파일을 쓰고 읽으려고 시도했지만 작동하지 않습니다. 문제는 내가 file = fileService.getBlobFile(blobKey);과 같은 파일을 열고 어떤 예외도 던지지 않지만 바로 다음 줄에 readChannel = fileService.openReadChannel(file, false);을 호출하고 FileNotFoundException을 던집니다.BlobStore에서 파일을 읽을 수 없습니다.

왜 첫 번째 줄에서 예외가 발생하지 않았는지 혼란 스럽습니다.

Here is the same issue

불행하게도 아무도 그 질문에 대답하지 않습니다.

답변

1

나는 쓰기 또는 삭제에 문제가 없었어요,하지만 AppEngineFileopenReadChannel(...)를 사용할 때 너무 FileNotFoundException 얻을.

전체 경로를 사용하여 생성자에서 생성 된 AppEngineFile을 사용해 보았습니다. 위와 같이 getBlobFile(...)에서 얻은 AppEngineFile을 사용해 보았습니다. 어느 경우 든 AppEngineFileopenReadChannel(...)으로 전달되면 FileNotFoundException이 발생합니다.

해결 방법은 BlobstoreService.serve(...)이 파일을 읽고 보내는 모든 작업을하도록하는 것입니다. 나는 FileService을 사용하여 AppEngineFile에서 읽을 수 없다고 생각합니다. (1.6.0을 사용하고 있습니다.) 따라서 BlobstoreService (serve(...), fetchData(...), BlobstoreInputStream)을 통해 읽어야합니다.

+0

Blob 저장소가 사용되는 방식으로 작동하는 것으로 생각합니다. 우리는 처리해야하는 대용량 데이터 파일을 저장하는 데 사용하여 실제로 파일을 처리해야했습니다. 파일을 제공하는 것이 필요한 경우 아마 이것이 올바른 방법 일 것입니다. 우리는이 프로젝트를 위해 Google 앱을 완전히 삭제했지만 결국 위 코드가 작동하지 않는 이유를 알게되어 좋았을 것입니다. 어쨌든 고마워. – Ernesto

관련 문제