ユーザーがいくつかのファイルをアップロードし、それをGoogleCloudStorageに保存しました。これで、ユーザーが戻ってきて、アプリが表示しているリストからファイルをダウンロードしたいと考えています。リンクをクリックすると、サーブレットが呼び出されます。そのサーブレットの背後にあるコードはどのようになりますか?また、オブジェクトを公開したくありません。ここで私のものはどのように見えるでしょう:これを行うためのより簡単な方法はありますか?ありがとう。
public class ServeGSObject extends HttpServlet {
FileService fileService = FileServiceFactory.getFileService();
public void doGet(HttpServletRequest request, HttpServletResponse response){
String fullFilePath = request.getParameter("objectPath");
AppEngineFile file = new AppEngineFile(fullFilePath);
try {
FileReadChannel channel = fileService.openReadChannel(file, false);
BufferedInputStream bis = new BufferedInputStream(Channels.newInputStream(channel));
BufferedOutputStream bos = new BufferedOutputStream(response.getOutputStream());
response.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();
}
}
}