Tweak test script no issue #
[arvados.git] / src / main / java / org / arvados / client / logic / keep / FileTransferHandler.java
1 /*
2  * Copyright (C) The Arvados Authors. All rights reserved.
3  *
4  * SPDX-License-Identifier: AGPL-3.0 OR Apache-2.0
5  *
6  */
7
8 package org.arvados.client.logic.keep;
9
10 import org.arvados.client.api.client.KeepServerApiClient;
11 import org.arvados.client.exception.ArvadosApiException;
12 import org.arvados.client.config.ConfigProvider;
13 import org.slf4j.Logger;
14
15 import java.io.File;
16 import java.util.Map;
17
18 public class FileTransferHandler {
19
20     private final String host;
21     private final KeepServerApiClient keepServerApiClient;
22     private final Map<String, String> headers;
23     private final Logger log = org.slf4j.LoggerFactory.getLogger(FileTransferHandler.class);
24
25     public FileTransferHandler(String host, Map<String, String> headers, ConfigProvider config) {
26         this.host = host;
27         this.headers = headers;
28         this.keepServerApiClient = new KeepServerApiClient(config);
29     }
30
31     public String put(String hashString, File body) {
32         String url = host + hashString;
33         String locator = null;
34         try {
35             locator = keepServerApiClient.upload(url, headers, body);
36         } catch (ArvadosApiException e) {
37             log.error("Cannot upload file to Keep server.", e);
38         }
39         return locator;
40     }
41
42     public byte[] get(KeepLocator locator) {
43         return get(locator.stripped(), locator.permissionHint());
44     }
45
46     public byte[] get(String blockLocator, String authToken) {
47         String url = host + blockLocator + "+" + authToken;
48         try {
49             return keepServerApiClient.download(url);
50         } catch (ArvadosApiException e) {
51             log.error("Cannot download file from Keep server.", e);
52             return  null;
53         }
54     }
55 }