String blobKeyString = asString("download");
if (StringUtil.isEmpty(blobKeyString)) {
response.setStatus(HttpServletResponse.SC_BAD_REQUEST);
return null;
}
BlobstoreService blobstoreService =
BlobstoreServiceFactory.getBlobstoreService();
BlobKey blobKey = new BlobKey(blobKeyString);
BlobInfo blobInfo = new BlobInfoFactory().loadBlobInfo(blobKey);
response.setContentType(blobInfo.getContentType());
response.setContentLength((int) blobInfo.getSize());
response.setHeader(
"Content-disposition",
"attachment;" + blobInfo.getFilename());
byte[] data =
blobstoreService.fetchData(blobKey, 0, blobInfo.getSize());
response.getOutputStream().write(data);
response.flushBuffer();
return null;
}