2 * Copyright (C) The Arvados Authors. All rights reserved.
4 * SPDX-License-Identifier: AGPL-3.0 OR Apache-2.0
8 package org.arvados.client.logic.keep;
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;
18 public class FileTransferHandler {
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);
25 public FileTransferHandler(String host, Map<String, String> headers, ConfigProvider config) {
27 this.headers = headers;
28 this.keepServerApiClient = new KeepServerApiClient(config);
31 public String put(String hashString, File body) {
32 String url = host + hashString;
33 String locator = null;
35 locator = keepServerApiClient.upload(url, headers, body);
36 } catch (ArvadosApiException e) {
37 log.error("Cannot upload file to Keep server.", e);
42 public byte[] get(KeepLocator locator) {
43 return get(locator.stripped(), locator.permissionHint());
46 public byte[] get(String blockLocator, String authToken) {
47 String url = host + blockLocator + "+" + authToken;
49 return keepServerApiClient.download(url);
50 } catch (ArvadosApiException e) {
51 log.error("Cannot download file from Keep server.", e);