List of usage examples for org.apache.http.client.fluent Response saveContent
public void saveContent(final File file) throws IOException
From source file:aiai.ai.station.actors.DownloadResourceActor.java
public void fixedDelay() { if (globals.isUnitTesting) { return;/*from w w w. j ava2 s . c om*/ } if (!globals.isStationEnabled) { return; } DownloadResourceTask task; while ((task = poll()) != null) { // if (Boolean.TRUE.equals(preparedMap.get(task.getId()))) { // continue; // } AssetFile assetFile = StationResourceUtils.prepareResourceFile(task.targetDir, task.binaryDataType, task.id, null); if (assetFile.isError) { log.warn("Resource can't be downloaded. Asset file initialization was failed, {}", assetFile); continue; } if (assetFile.isContent) { log.info("Resource was already downloaded. Asset file: {}", assetFile.file.getPath()); // preparedMap.put(task.getId(), true); continue; } try { Request request = Request.Get(targetUrl + '/' + task.getBinaryDataType() + '/' + task.getId()) .connectTimeout(5000).socketTimeout(5000); Response response; if (globals.isSecureRestUrl) { response = executor.executor.execute(request); } else { response = request.execute(); } response.saveContent(assetFile.file); // preparedMap.put(task.getId(), true); log.info("Resource #{} was loaded", task.getId()); } catch (HttpResponseException e) { if (e.getStatusCode() == HttpServletResponse.SC_GONE) { log.warn("Resource with id {} wasn't found", task.getId()); } else if (e.getStatusCode() == HttpServletResponse.SC_CONFLICT) { log.warn("Resource with id {} is broken and need to be recreated", task.getId()); } else { log.error("HttpResponseException.getStatusCode(): {}", e.getStatusCode()); log.error("HttpResponseException", e); } } catch (SocketTimeoutException e) { log.error("SocketTimeoutException", e); } catch (IOException e) { log.error("IOException", e); } } }
From source file:aiai.ai.station.actors.DownloadSnippetActor.java
public void fixedDelay() { if (globals.isUnitTesting) { return;/* ww w. j av a 2s. c om*/ } if (!globals.isStationEnabled) { return; } DownloadSnippetTask task; while ((task = poll()) != null) { if (Boolean.TRUE.equals(preparedMap.get(task.getSnippetCode()))) { continue; } final String snippetCode = task.snippetCode; AssetFile assetFile = StationResourceUtils.prepareResourceFile(globals.stationResourcesDir, Enums.BinaryDataType.SNIPPET, task.snippetCode, task.filename); if (assetFile.isError) { log.warn("Resource can't be downloaded. Asset file initialization was failed, {}", assetFile); continue; } if (assetFile.isContent) { log.info("Snippet was already downloaded. Snippet file: {}", assetFile.file.getPath()); preparedMap.put(snippetCode, true); continue; } Checksum checksum = null; if (globals.isAcceptOnlySignedSnippets) { try { Request request = Request.Get(snippetChecksumUrl + '/' + snippetCode).connectTimeout(5000) .socketTimeout(5000); Response response; if (globals.isSecureRestUrl) { response = executor.executor.execute(request); } else { response = request.execute(); } String checksumStr = response.returnContent().asString(StandardCharsets.UTF_8); checksum = Checksum.fromJson(checksumStr); } catch (HttpResponseException e) { logError(snippetCode, e); break; } catch (SocketTimeoutException e) { log.error("SocketTimeoutException", e); break; } catch (IOException e) { log.error("IOException", e); break; } catch (Throwable th) { log.error("Throwable", th); return; } } try { File snippetTempFile = new File(assetFile.file.getAbsolutePath() + ".tmp"); // @GetMapping("/rest-anon/payload/resource/{type}/{code}") Request request = Request.Get(targetUrl + '/' + snippetCode).connectTimeout(5000) .socketTimeout(5000); Response response; if (globals.isSecureRestUrl) { response = executor.executor.execute(request); } else { response = request.execute(); } response.saveContent(snippetTempFile); boolean isOk = true; if (globals.isAcceptOnlySignedSnippets) { CheckSumAndSignatureStatus status; try (FileInputStream fis = new FileInputStream(snippetTempFile)) { status = checksumWithSignatureService.verifyChecksumAndSignature(checksum, snippetCode, fis, true); } if (status.isSignatureOk == null) { log.warn( "globals.isAcceptOnlySignedSnippets is {} but snippet with code {} doesn't have signature", globals.isAcceptOnlySignedSnippets, snippetCode); continue; } if (Boolean.FALSE.equals(status.isSignatureOk)) { log.warn( "globals.isAcceptOnlySignedSnippets is {} but snippet with code {} has the broken signature", globals.isAcceptOnlySignedSnippets, snippetCode); continue; } isOk = (status.isOk && !Boolean.FALSE.equals(status.isSignatureOk)); } if (isOk) { //noinspection ResultOfMethodCallIgnored snippetTempFile.renameTo(assetFile.file); preparedMap.put(snippetCode, true); } else { //noinspection ResultOfMethodCallIgnored snippetTempFile.delete(); } } catch (HttpResponseException e) { logError(snippetCode, e); } catch (SocketTimeoutException e) { log.error("SocketTimeoutException", e.toString()); } catch (IOException e) { log.error("IOException", e); } } }