Google Cloud ストレージにファイル データを保存する Google App Engine (Java) ベースのアプリケーションがあります。
このファイル ダウンロード サーブレットは、ローカルの Eclipse 環境で正常に動作し、appspot ドメインに展開すると、単純なテキスト ファイルに対しては機能しますが、任意のドキュメント (ブラウザの新しいタブに表示されます) に対しては機能しますが、他のバイナリ ファイル (doc 、jpeg、gif など) は何もしないようで、サーバー側でもエラーはスローされません。Google Cloud ストレージのファイル フォルダを直接チェックインしました。ファイルは適切に保存され、直接アクセスできますが、アプリ エンジン経由ではアクセスできません。
何か不足している場合はお知らせください。
以下のコード スニペット、
try {
FileService newfileService = FileServiceFactory.getFileService();
AppEngineFile file = new AppEngineFile(cloudpath) ;
FileReadChannel channel = newfileService.openReadChannel(file, false);
BufferedInputStream bis = new BufferedInputStream(Channels.newInputStream(channel));
BufferedOutputStream bos = new BufferedOutputStream(resp.getOutputStream());
resp.setHeader("Content-Disposition", "inline;filename=\"" + file.getNamePart() + "");
int b = 0;
while((b = bis.read()) != -1) {
bos.write(b);
}
bos.flush();
} catch (Exception e) {
e.printStackTrace();
}