From df21279137bcdd27c3b8ba00fb78e4f0bd663fa3 Mon Sep 17 00:00:00 2001 From: vkovtun <viktor.kovtun@id.ethz.ch> Date: Thu, 2 Feb 2023 16:23:20 +0100 Subject: [PATCH] SSDM-11306 Fixed support of single file upload. --- .../public/resources/api/v3/openbis.js | 3 +- .../ethz/sis/openbis/generic/OpenBISAPI.java | 34 ++++++++----------- 2 files changed, 17 insertions(+), 20 deletions(-) diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/public/resources/api/v3/openbis.js b/openbis/source/java/ch/systemsx/cisd/openbis/public/resources/api/v3/openbis.js index c6b90a44504..6f26a539f64 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/public/resources/api/v3/openbis.js +++ b/openbis/source/java/ch/systemsx/cisd/openbis/public/resources/api/v3/openbis.js @@ -387,7 +387,8 @@ define([ 'jquery', 'util/Json', 'as/dto/datastore/search/DataStoreSearchCriteria this._uploadFileWorkspaceDSSFile = function(file, parentId) { var dfd = jquery.Deferred(); this._getDataStores().done(function(dataStores) { - var filename = encodeURIComponent(parentId + "/" + file.webkitRelativePath); + var filename = encodeURIComponent(parentId + "/" + + (file.webkitRelativePath ? file.webkitRelativePath : file.name)); var sessionID = facade._private.sessionToken; var fileSize = file.size; var chunkSize = 1048576; // 1 MiB diff --git a/openbis_api/source/java/ch/ethz/sis/openbis/generic/OpenBISAPI.java b/openbis_api/source/java/ch/ethz/sis/openbis/generic/OpenBISAPI.java index 68126e7015e..ad3536e7265 100644 --- a/openbis_api/source/java/ch/ethz/sis/openbis/generic/OpenBISAPI.java +++ b/openbis_api/source/java/ch/ethz/sis/openbis/generic/OpenBISAPI.java @@ -1,38 +1,34 @@ package ch.ethz.sis.openbis.generic; -import ch.ethz.sis.openbis.generic.asapi.v3.IApplicationServerApi; -import ch.ethz.sis.openbis.generic.asapi.v3.dto.dataset.id.DataSetPermId; -import ch.ethz.sis.openbis.generic.asapi.v3.dto.entitytype.EntityKind; -import ch.ethz.sis.openbis.generic.asapi.v3.dto.entitytype.id.EntityTypePermId; -import ch.ethz.sis.openbis.generic.asapi.v3.dto.experiment.id.ExperimentIdentifier; -import ch.ethz.sis.openbis.generic.asapi.v3.dto.sample.id.SampleIdentifier; -import ch.ethz.sis.openbis.generic.dssapi.v3.IDataStoreServerApi; -import ch.ethz.sis.openbis.generic.dssapi.v3.dto.dataset.create.UploadedDataSetCreation; -import ch.systemsx.cisd.common.exceptions.UserFailureException; -import ch.systemsx.cisd.common.http.JettyHttpClientFactory; -import ch.systemsx.cisd.common.logging.LogCategory; -import ch.systemsx.cisd.common.logging.LogFactory; -import ch.systemsx.cisd.common.spring.HttpInvokerUtils; - import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; -import java.nio.file.Files; import java.nio.file.Path; -import java.util.*; +import java.util.Collection; +import java.util.Iterator; +import java.util.List; +import java.util.UUID; import java.util.concurrent.ExecutionException; import java.util.concurrent.TimeoutException; -import java.util.stream.Collectors; import org.apache.log4j.Logger; -import org.eclipse.jetty.client.api.ContentProvider; import org.eclipse.jetty.client.api.ContentResponse; import org.eclipse.jetty.client.api.Request; import org.eclipse.jetty.client.util.BytesContentProvider; import org.eclipse.jetty.http.HttpMethod; +import ch.ethz.sis.openbis.generic.asapi.v3.IApplicationServerApi; +import ch.ethz.sis.openbis.generic.asapi.v3.dto.dataset.id.DataSetPermId; +import ch.ethz.sis.openbis.generic.dssapi.v3.IDataStoreServerApi; +import ch.ethz.sis.openbis.generic.dssapi.v3.dto.dataset.create.UploadedDataSetCreation; +import ch.systemsx.cisd.common.exceptions.UserFailureException; +import ch.systemsx.cisd.common.http.JettyHttpClientFactory; +import ch.systemsx.cisd.common.logging.LogCategory; +import ch.systemsx.cisd.common.logging.LogFactory; +import ch.systemsx.cisd.common.spring.HttpInvokerUtils; + public class OpenBISAPI { private static final Logger OPERATION_LOG = LogFactory.getLogger(LogCategory.OPERATION, OpenBISAPI.class); @@ -125,7 +121,7 @@ public class OpenBISAPI { if (fileOrFolder.isDirectory()) { uploadFileWorkspaceDSSEmptyDir(fileNameOrFolderName); - for (File file:fileOrFolder.listFiles()) + for (File file : fileOrFolder.listFiles()) { uploadFileWorkspaceDSS(file, fileNameOrFolderName); } -- GitLab