Add new method to upload files via Keep Web API
[arvados.git] / sdk / java-v2 / src / main / java / org / arvados / client / api / client / KeepWebApiClient.java
index 0145b0fc4c5129948d132f0662ed05b6807a3a96..05d39e9e6085ac66f6ea0aa1901c3ce2ae096f68 100644 (file)
@@ -9,8 +9,11 @@ package org.arvados.client.api.client;
 
 import okhttp3.HttpUrl;
 import okhttp3.Request;
+import okhttp3.RequestBody;
 import org.arvados.client.config.ConfigProvider;
 
+import java.io.File;
+
 public class KeepWebApiClient extends BaseApiClient {
 
     public KeepWebApiClient(ConfigProvider config) {
@@ -35,6 +38,16 @@ public class KeepWebApiClient extends BaseApiClient {
         return newCall(request);
     }
 
+    public String upload(String collectionUuid, File file, ProgressListener progressListener) {
+        RequestBody requestBody = new CountingFileRequestBody(file, progressListener);
+
+        Request request = getRequestBuilder()
+                .url(getUrlBuilder(collectionUuid, file.getName()).build())
+                .put(requestBody)
+                .build();
+        return newCall(request);
+    }
+
     private HttpUrl.Builder getUrlBuilder(String collectionUuid, String filePathName) {
         return new HttpUrl.Builder()
                 .scheme(config.getApiProtocol())