implemented file download service (undone)

This commit is contained in:
strawmanbobi
2019-06-24 22:55:35 +08:00
parent ad2ce455e4
commit c650b0272e
2 changed files with 32 additions and 9 deletions

View File

@@ -23,7 +23,7 @@ import java.util.List;
* Revised: Date: 2019-06-08 * Revised: Date: 2019-06-08
* Revision: Revision: 1.0 * Revision: Revision: 1.0
* <p> * <p>
* Description: IRext Indexing Webservice * Description: IRext indexing service
* <p> * <p>
* Revision log: * Revision log:
* 2019-06-08: created by strawmanbobi * 2019-06-08: created by strawmanbobi

View File

@@ -6,10 +6,7 @@ import net.irext.server.service.cache.IIRBinaryRepository;
import net.irext.server.service.model.ACParameters; import net.irext.server.service.model.ACParameters;
import net.irext.server.service.model.DecodeSession; import net.irext.server.service.model.DecodeSession;
import net.irext.server.service.model.RemoteIndex; import net.irext.server.service.model.RemoteIndex;
import net.irext.server.service.request.CloseRequest; import net.irext.server.service.request.*;
import net.irext.server.service.request.DecodeRequest;
import net.irext.server.service.request.GetACParametersRequest;
import net.irext.server.service.request.OpenRequest;
import net.irext.server.service.response.*; import net.irext.server.service.response.*;
import net.irext.server.service.utils.LoggerUtil; import net.irext.server.service.utils.LoggerUtil;
import net.irext.server.service.utils.MD5Util; import net.irext.server.service.utils.MD5Util;
@@ -18,6 +15,8 @@ import net.irext.server.service.restapi.base.AbstractBaseService;
import net.irext.server.sdk.bean.ACStatus; import net.irext.server.sdk.bean.ACStatus;
import net.irext.server.sdk.utils.Constants; import net.irext.server.sdk.utils.Constants;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.io.InputStreamResource;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
@@ -26,26 +25,33 @@ import org.springframework.web.bind.annotation.RestController;
import javax.servlet.ServletContext; import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.ws.rs.core.HttpHeaders;
import javax.ws.rs.core.MediaType;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import static org.apache.commons.io.filefilter.DirectoryFileFilter.DIRECTORY;
/** /**
* Filename: IRDecodeService.java * Filename: IRDecodeService.java
* Revised: Date: 2018-12-16 * Revised: Date: 2018-12-16
* Revision: Revision: 1.0 * Revision: Revision: 1.0
* <p> * <p>
* Description: IRext decode service * Description: IRext operation service
* <p> * <p>
* Revision log: * Revision log:
* 2018-12-16: created by strawmanbobi * 2018-12-16: created by strawmanbobi
*/ */
@RestController @RestController
@RequestMapping("/irext-server/decode") @RequestMapping("/irext-server/operation")
@Service("IRDecodeService") @Service("IRDecodeService")
@SuppressWarnings("unused") @SuppressWarnings("unused")
public class IRDecodeService extends AbstractBaseService { public class IROperationService extends AbstractBaseService {
private static final String TAG = IRDecodeService.class.getSimpleName(); private static final String TAG = IROperationService.class.getSimpleName();
private ServletContext context; private ServletContext context;
@@ -75,6 +81,23 @@ public class IRDecodeService extends AbstractBaseService {
this.decodeSessionRepository = decodeSessionRepository; this.decodeSessionRepository = decodeSessionRepository;
} }
@PostMapping("/download_bin")
public ResponseEntity<InputStreamResource> downloadBin(
@RequestBody DownloadBinaryRequest downloadBinaryRequest) throws IOException {
FileInputStream inputStream = indexingLogic.getDownloadStream(downloadBinaryRequest.getIndexId());
InputStreamResource resource = new InputStreamResource(inputStream);
String fileName = "";
int fileLength = 0;
return ResponseEntity.ok()
// Content-Disposition
.header(HttpHeaders.CONTENT_DISPOSITION, "attachment;filename=" + fileName)
// Contet-Length
.contentLength(fileLength)
.body(resource);
}
@PostMapping("/open") @PostMapping("/open")
public StringResponse irOpen(HttpServletRequest request, @RequestBody OpenRequest openRequest) { public StringResponse irOpen(HttpServletRequest request, @RequestBody OpenRequest openRequest) {
try { try {