diff --git a/README.md b/README.md
index a379927..9410dcd 100644
--- a/README.md
+++ b/README.md
@@ -23,4 +23,5 @@ c. **2** stands for both ways deposition if the repository allows the deposits o
**repositoryAccessTokenUrl** - repository's access token url e.g. "https://sandbox.zenodo.org/oauth/token"
**repositoryClientId** - repository's client id
**repositoryClientSecret** - repository's client secret
-**redirectUri** - redirect uri to argos after the oauth2 flow from the repository
\ No newline at end of file
+**redirectUri** - redirect uri to argos after the oauth2 flow from the repository
+**hasLogo** - if the repository has a logo
\ No newline at end of file
diff --git a/src/main/java/eu/eudat/depositinterface/zenodorepository/interfaces/ZenodoDeposit.java b/src/main/java/eu/eudat/depositinterface/zenodorepository/interfaces/ZenodoDeposit.java
index 6436424..58c781c 100644
--- a/src/main/java/eu/eudat/depositinterface/zenodorepository/interfaces/ZenodoDeposit.java
+++ b/src/main/java/eu/eudat/depositinterface/zenodorepository/interfaces/ZenodoDeposit.java
@@ -2,6 +2,7 @@ package eu.eudat.depositinterface.zenodorepository.interfaces;
import com.fasterxml.jackson.databind.ObjectMapper;
import eu.eudat.depositinterface.models.DMPDepositModel;
+import eu.eudat.depositinterface.models.FileEnvelope;
import eu.eudat.depositinterface.repository.RepositoryDeposit;
import eu.eudat.depositinterface.repository.RepositoryDepositConfiguration;
import eu.eudat.depositinterface.zenodorepository.config.ConfigLoader;
@@ -12,10 +13,7 @@ import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.env.Environment;
import org.springframework.core.io.FileSystemResource;
-import org.springframework.http.HttpEntity;
-import org.springframework.http.HttpHeaders;
-import org.springframework.http.MediaType;
-import org.springframework.http.ResponseEntity;
+import org.springframework.http.*;
import org.springframework.stereotype.Component;
import org.springframework.util.LinkedMultiValueMap;
import org.springframework.util.MultiValueMap;
@@ -23,9 +21,7 @@ import org.springframework.web.client.HttpClientErrorException;
import org.springframework.web.client.HttpServerErrorException;
import org.springframework.web.client.RestTemplate;
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.IOException;
+import java.io.*;
import java.nio.file.Files;
import java.util.*;
@@ -128,15 +124,25 @@ public class ZenodoDeposit implements RepositoryDeposit {
if (unpublishedUrl == null) {
// Second step, add the file to the entry.
- File pdfFile = dmpDepositModel.getPdfFile();
- String fileName = dmpDepositModel.getPdfFileName();
- FileSystemResource fileSystemResource = new FileSystemResource(pdfFile);
+ FileEnvelope pdfEnvelope = dmpDepositModel.getPdfFile();
+ FileSystemResource fileSystemResource = new FileSystemResource(pdfEnvelope.getFile());
HttpEntity addFileMapRequest = new HttpEntity<>(fileSystemResource, null);
- String addFileUrl = links.get("bucket") + "/" + fileName + "?access_token=" + zenodoToken;
+ String addFileUrl = links.get("bucket") + "/" + pdfEnvelope.getFilename() + "?access_token=" + zenodoToken;
restTemplate.put(addFileUrl, addFileMapRequest);
- ResponseEntity jsonFile = dmpDepositModel.getRdaJson();
+ FileEnvelope rdaJsonEnvelope = dmpDepositModel.getRdaJsonFile();
+ HttpHeaders responseHeaders = new HttpHeaders();
+ responseHeaders.setContentLength(rdaJsonEnvelope.getFile().length());
+ responseHeaders.setContentType(MediaType.APPLICATION_OCTET_STREAM);
+ responseHeaders.set("Content-Disposition", "attachment;filename=" + rdaJsonEnvelope.getFilename());
+ responseHeaders.set("Access-Control-Expose-Headers", "Content-Disposition");
+ responseHeaders.get("Access-Control-Expose-Headers").add("Content-Type");
+
+ byte[] content = Files.readAllBytes(rdaJsonEnvelope.getFile().toPath());
+
+ ResponseEntity jsonFile = new ResponseEntity<>(content, responseHeaders, HttpStatus.OK);
+
UUID jsonFileUUID = UUID.randomUUID();
File tempJsonFile = new File(this.environment.getProperty("storage.temp") + jsonFileUUID + ".json");
try (FileOutputStream jsonFos = new FileOutputStream(tempJsonFile)) {
diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties
index edb8c21..7a587a5 100644
--- a/src/main/resources/application.properties
+++ b/src/main/resources/application.properties
@@ -1,4 +1,4 @@
configuration.doi_funder=DOI_Funder.json
-configuration.logo=zenodo.jpg
+configuration.zenodo.logo=${CONFIGURATION_LOGO_ZENODO}
storage.temp=${STORAGE_TMP_ZENODO}
configuration.zenodo=${CONFIGURATION_ZENODO}