in src/main/java/com/amazon/photosharing/servlets/PrivateMediaServlet.java [73:94]
private void streamS3Content(String p_s3_bucket, String p_s3_file, HttpServletResponse p_resp, boolean p_no_retry) throws IOException{
S3ObjectInputStream stream = ContentHelper.getInstance().downloadContent(p_s3_bucket, p_s3_file);
if (stream != null) {
try {
IOUtils.copy(stream, p_resp.getOutputStream());
} catch (IOException e) {
//usually broken pipe if user cancels
} finally {
stream.close();
p_resp.getOutputStream().flush();
p_resp.getOutputStream().close();
}
} else {
try {
Thread.sleep(1000); //back off. eventually consistency S3 responses..
} catch (InterruptedException e) {
//why would that happen?
}
if (!p_no_retry)
streamS3Content(p_s3_bucket, p_s3_file, p_resp, true);
}
}