clean up names
This commit is contained in:
parent
d6522a4a59
commit
cc7a97eee6
|
@ -6,21 +6,19 @@ import gr.cite.tools.logging.LoggerService;
|
|||
import gr.cite.tools.logging.MapLogEntry;
|
||||
import org.opencdmp.commonmodels.models.FileEnvelopeModel;
|
||||
import org.opencdmp.commonmodels.models.dmp.DmpModel;
|
||||
import org.opencdmp.depositbase.repository.DepositConfiguration;
|
||||
import org.opencdmp.deposit.zenodorepository.model.ZenodoDeposit;
|
||||
import org.opencdmp.deposit.zenodorepository.model.builder.ZenodoBuilder;
|
||||
import org.opencdmp.deposit.zenodorepository.service.storage.FileStorageService;
|
||||
import org.opencdmp.depositbase.repository.DepositConfiguration;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.core.ParameterizedTypeReference;
|
||||
import org.springframework.core.io.ByteArrayResource;
|
||||
import org.springframework.http.MediaType;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.http.client.MultipartBodyBuilder;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.util.LinkedMultiValueMap;
|
||||
import org.springframework.util.MultiValueMap;
|
||||
import org.springframework.util.MultiValueMapAdapter;
|
||||
import org.springframework.util.ResourceUtils;
|
||||
import org.springframework.web.client.HttpClientErrorException;
|
||||
import org.springframework.web.client.HttpServerErrorException;
|
||||
|
@ -114,8 +112,7 @@ public class ZenodoDepositServiceImpl implements ZenodoDepositService {
|
|||
FileEnvelopeModel pdfEnvelope = dmpModel.getPdfFile();
|
||||
|
||||
if (links == null || !links.containsKey(ZENODO_LINKS_BUCKET)) throw new MyApplicationException("bucket not found");
|
||||
|
||||
String addFileUrl = links.get(ZENODO_LINKS_BUCKET) + "/" + pdfEnvelope.getFilename() + "?access_token=" + zenodoToken;
|
||||
String addFileUrl = links.get(ZENODO_LINKS_BUCKET) + "/" + cleanFileName(pdfEnvelope.getFilename()) + "?access_token=" + zenodoToken;
|
||||
|
||||
byte[] pdfFileBytes = null;
|
||||
if (this.getConfiguration().isUseSharedStorage() && pdfEnvelope.getFileRef() != null && !pdfEnvelope.getFileRef().isBlank()) {
|
||||
|
@ -130,7 +127,7 @@ public class ZenodoDepositServiceImpl implements ZenodoDepositService {
|
|||
.retrieve().toEntity(Map.class).block();
|
||||
FileEnvelopeModel rdaJsonEnvelope = dmpModel.getRdaJsonFile();
|
||||
|
||||
String jsonFileName = rdaJsonEnvelope.getFilename();
|
||||
String jsonFileName = cleanFileName(rdaJsonEnvelope.getFilename());
|
||||
addFileUrl = links.get(ZENODO_LINKS_BUCKET) + "/" + jsonFileName + "?access_token=" + zenodoToken;
|
||||
|
||||
byte[] rdaJsonBytes = null;
|
||||
|
@ -143,7 +140,7 @@ public class ZenodoDepositServiceImpl implements ZenodoDepositService {
|
|||
zenodoClient.put().uri(addFileUrl).headers(httpHeaders -> httpHeaders.setContentType(MediaType.APPLICATION_OCTET_STREAM)).body(BodyInserters.fromResource(new ByteArrayResource(rdaJsonBytes))).retrieve().toEntity(Map.class).block();
|
||||
|
||||
if (dmpModel.getSupportingFilesZip() != null) {
|
||||
String supportingFilesZipName = dmpModel.getSupportingFilesZip().getFilename();
|
||||
String supportingFilesZipName = cleanFileName(dmpModel.getSupportingFilesZip().getFilename());
|
||||
|
||||
addFileUrl = links.get(ZENODO_LINKS_BUCKET) + "/" + supportingFilesZipName + "?access_token=" + zenodoToken;
|
||||
zenodoClient.put().uri(addFileUrl).body(BodyInserters.fromResource(new ByteArrayResource(supportingFilesZipName.getBytes()))).retrieve().toEntity(Map.class).block();
|
||||
|
@ -168,6 +165,22 @@ public class ZenodoDepositServiceImpl implements ZenodoDepositService {
|
|||
return null;
|
||||
|
||||
}
|
||||
|
||||
private static String cleanFileName(String name){
|
||||
if (name == null || name.isEmpty()) return null;
|
||||
|
||||
int extensionIndex = name.lastIndexOf('.');
|
||||
String extension = "";
|
||||
String namePart = "";
|
||||
if (extensionIndex > 0) {
|
||||
extension = name.substring(extensionIndex + 1);
|
||||
namePart = name.substring(0, extensionIndex);
|
||||
}
|
||||
|
||||
if (!namePart.isEmpty()) namePart = namePart.replaceAll("[^a-zA-Z0-9_+ ]", "").replace(" ", "_").replace(",", "_");
|
||||
|
||||
return namePart + "." + extension;
|
||||
}
|
||||
|
||||
private static LinkedHashMap<String, String> depositNewVersion(String zenodoToken, String zenodoUrl, String previousDOI, WebClient zenodoClient, ZenodoDeposit deposit) throws Exception {
|
||||
Map<String, Object> createResponse;
|
||||
|
|
Loading…
Reference in New Issue