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.api.client;
10 import okhttp3.Request;
11 import okhttp3.RequestBody;
12 import org.arvados.client.api.client.CountingFileRequestBody.TransferData;
13 import org.arvados.client.common.Headers;
14 import org.arvados.client.config.ConfigProvider;
15 import org.slf4j.Logger;
20 public class KeepServerApiClient extends BaseApiClient {
22 private final Logger log = org.slf4j.LoggerFactory.getLogger(KeepServerApiClient.class);
24 public KeepServerApiClient(ConfigProvider config) {
28 public String upload(String url, Map<String, String> headers, File body) {
30 log.debug("Upload file {} to server location {}", body, url);
32 final TransferData transferData = new TransferData(body.length());
34 RequestBody requestBody = new CountingFileRequestBody(body, transferData::updateTransferProgress);
36 Request request = getRequestBuilder()
38 .addHeader(Headers.X_KEEP_DESIRED_REPLICAS, headers.get(Headers.X_KEEP_DESIRED_REPLICAS))
42 return newCall(request);
45 public byte[] download(String url) {
47 Request request = getRequestBuilder()
52 return newFileCall(request);