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.HttpUrl;
11 import okhttp3.Request;
12 import okhttp3.RequestBody;
13 import org.arvados.client.config.ConfigProvider;
16 import java.io.InputStream;
18 public class KeepWebApiClient extends BaseApiClient {
20 public KeepWebApiClient(ConfigProvider config) {
24 public byte[] download(String collectionUuid, String filePathName) {
25 Request request = getRequestBuilder()
26 .url(getUrlBuilder(collectionUuid,filePathName).build())
30 return newFileCall(request);
33 public String delete(String collectionUuid, String filePathName) {
34 Request request = getRequestBuilder()
35 .url(getUrlBuilder(collectionUuid, filePathName).build())
39 return newCall(request);
42 public String upload(String collectionUuid, File file, ProgressListener progressListener) {
43 RequestBody requestBody = new CountingFileRequestBody(file, progressListener);
45 Request request = getRequestBuilder()
46 .url(getUrlBuilder(collectionUuid, file.getName()).build())
49 return newCall(request);
52 public String upload(String collectionUuid, InputStream inputStream, String fileName, ProgressListener progressListener) {
53 RequestBody requestBody = new CountingStreamRequestBody(inputStream, progressListener);
55 Request request = getRequestBuilder()
56 .url(getUrlBuilder(collectionUuid, fileName).build())
59 return newCall(request);
62 private HttpUrl.Builder getUrlBuilder(String collectionUuid, String filePathName) {
63 return new HttpUrl.Builder()
64 .scheme(config.getApiProtocol())
65 .host(config.getKeepWebHost())
66 .port(config.getKeepWebPort())
67 .addPathSegment("c=" + collectionUuid)
68 .addPathSegment(filePathName);