Included the file size to reduce/optimize the time to upload files to

the storage hub [#28150]
This commit is contained in:
Francesco Mangiacrapa 2024-10-01 15:32:19 +02:00
parent 93ae600b30
commit 0808d1e12c
8 changed files with 41 additions and 9 deletions

View File

@ -1,5 +1,9 @@
# Changelog for org.gcube.application.cms-plugin-framework
## [v1.0.6-SNAPSHOT] - 2024-10-01
- Included the file size to reduce/optimize the time to upload files to the storage hub [#28150]
## [v1.0.5] - 2024-07-03
- Implemented Event Broker [#26321]

View File

@ -4,7 +4,7 @@
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<artifactId>cms-plugin-framework</artifactId>
<version>1.0.5</version>
<version>1.0.6-SNAPSHOT</version>
<parent>
<groupId>org.gcube.application.cms</groupId>

View File

@ -52,6 +52,8 @@ public class WorkspaceManager {
private String fileDescription;
private FolderContainer parent;
//Added by Francesco, see #28150
private Long size;
}
@ -177,7 +179,14 @@ public class WorkspaceManager {
@Synchronized
private static FileContainer createFileRoutine(FileOptions opts) throws StorageHubException {
// Updated by Francesco, see #28150
log.debug("Uploading file name: {}, in the parent folder id: {}, filesize is: {}", opts.getFileName(),
opts.getParent().getId(), opts.getSize());
opts.setFileName(Files.fixFilename(opts.getFileName()));
return opts.getParent().uploadFile(opts.getIs(), opts.getFileName(), opts.getFileDescription());
if (opts.getSize() == null)
return opts.getParent().uploadFile(opts.getIs(), opts.getFileName(), opts.getFileDescription());
else
return opts.getParent().uploadFile(opts.getIs(), opts.getFileName(), opts.getFileDescription(),
opts.getSize());
}
}

View File

@ -1,5 +1,8 @@
# Changelog for org.gcube.application.geoportal-common
## [v1.1.1-SNAPSHOT] - 2024-10-01
- Included the file size to reduce/optimize the time to upload files to the storage hub [#28150]
## [v1.1.0] - 2024-04-08
- Added message to StepExecutionRequest [#27192]
- Fixed pom. Duplicate declaration of `registry-publisher` dependency

View File

@ -3,7 +3,7 @@
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<artifactId>geoportal-common</artifactId>
<version>1.1.0</version>
<version>1.1.1-SNAPSHOT</version>
<name>Geoportal Common</name>
<parent>

View File

@ -15,8 +15,20 @@ public class TempFile {
private String url;
private String filename;
public void validate()throws InvalidRequestException {
if((id==null || id.isEmpty() )&&(url==null||url.isEmpty())) throw new InvalidRequestException("Invalid temp file "+this+" : ID null or empty and no url defined");
if(filename==null || filename.isEmpty()) throw new InvalidRequestException("Invalid temp file "+this+" : filename null or empty");
// Added by Francesco, see #28150
private Long size;
public void validate() throws InvalidRequestException {
if ((id == null || id.isEmpty()) && (url == null || url.isEmpty()))
throw new InvalidRequestException("Invalid temp file " + this + " : ID null or empty and no url defined");
if (filename == null || filename.isEmpty())
throw new InvalidRequestException("Invalid temp file " + this + " : filename null or empty");
}
public TempFile(String id, String url, String filename) {
this.id = id;
this.url = url;
this.filename = filename;
}
}

View File

@ -111,8 +111,12 @@ public class FileSets {
FileSets.RequestBuilder builder = FileSets.build(parentPath,fieldName,fieldDefinition);
for (File f : toUpload) {
if(!f.isDirectory())
builder.add(FileSets.asTemp(storage, new InputStreamDescriptor(new FileInputStream(f), f.getName())));
if(!f.isDirectory()) {
TempFile file = FileSets.asTemp(storage, new InputStreamDescriptor(new FileInputStream(f), f.getName()));
//Added by Francesco, see #28150
file.setSize(f.length());
builder.add(file);
}
}
return builder.getTheRequest();
}

View File

@ -1562,7 +1562,7 @@ public class ProfiledMongoManager extends MongoManager implements MongoManagerI<
else
fileUrl = storage.getURL(f.getId());
log.info("Got URL {} from ID {}", fileUrl, f.getId());
log.info("Got URL {} from ID {}, filesize {}", fileUrl, f.getId(), f.getSize());
is = new URL(fileUrl).openStream();
RegisteredFile registered = ws.registerFile(new WorkspaceManager.FileOptions(f.getFilename(), is,
"Imported via gcube CMS service ", sectionFolder));