У меня есть несколько файлов, размещенных в облачном хранилище google, и я хотел бы передать их клиенту, но файлы защищены учетными данными, поэтому я бы хотел проксировать их через мое java-приложение.
Итак, браузер-> Java API -> Облачное хранилище Google
То, что я пробовал до сих пор
@RequestMapping(method = RequestMethod.GET, value = "/{fileId}")
public ResponseEntity<StreamingResponseBody> stream(@PathVariable Long fileId) throws IOException {
logger.info("Request to stream file {}", fileId);
//This is just a sample to for creating the input stream as it's what I get from google cloud storage
File file = new File("./test.mp3");
FileInputStream in = FileUtils.openInputStream(file);
StreamingResponseBody stream = out -> {
IOUtils.copy(in, out);
};
return ResponseEntity.ok()
//.header(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=\"" + file.getName() + "\"")
.header(HttpHeaders.ACCEPT_RANGES, ACCEPT_RANGES_BYTES)
.header(HttpHeaders.CONTENT_TYPE, "audio/mpeg")
.contentLength(file.length())
.body(stream);
}
, но при этом возвращается весь файл и отображается проигрыватель (хотя не воспроизводится)
И при включении CONTENT_DISPOSITION он создаст ссылку для загрузки всего файла.
Как я могу транслировать аудио с диапазонами в весенней загрузке / простой Java?