Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion src/main/java/edu/harvard/iq/dataverse/FilePage.java
Original file line number Diff line number Diff line change
Expand Up @@ -837,7 +837,7 @@ public String getPublicDownloadUrl() {
e.printStackTrace();
}

return FileUtil.getPublicDownloadUrl(systemConfig.getDataverseSiteUrl(), persistentId);
return FileUtil.getPublicDownloadUrl(systemConfig.getDataverseSiteUrl(), persistentId, fileId);
}

public List<ExternalTool> getConfigureTools() {
Expand Down
15 changes: 11 additions & 4 deletions src/main/java/edu/harvard/iq/dataverse/util/FileUtil.java
Original file line number Diff line number Diff line change
Expand Up @@ -1347,11 +1347,18 @@ public static boolean isPubliclyDownloadable(FileMetadata fileMetadata) {
* This is what the UI displays for "Download URL" on the file landing page
* (DOIs rather than file IDs.
*/
public static String getPublicDownloadUrl(String dataverseSiteUrl, String persistentId) {
String path = "/api/access/datafile/:persistentId?persistentId=" + persistentId;
return dataverseSiteUrl + path;
public static String getPublicDownloadUrl(String dataverseSiteUrl, String persistentId, Long fileId) {
String path = null;
if(persistentId != null) {
path = dataverseSiteUrl + "/api/access/datafile/:persistentId?persistentId=" + persistentId;
} else if( fileId != null) {
path = dataverseSiteUrl + "/api/access/datafile/" + fileId;
} else {
logger.info("In getPublicDownloadUrl but persistentId & fileId are both null!");
}
return path;
}

/**
* The FileDownloadServiceBean operates on file IDs, not DOIs.
*/
Expand Down
2 changes: 1 addition & 1 deletion src/main/webapp/file.xhtml
Original file line number Diff line number Diff line change
Expand Up @@ -428,7 +428,7 @@
</div>
</div>
<!--Only show Public download url if identifier is available -->
<div class="form-group" jsf:rendered="#{FilePage.publiclyDownloadable and !FilePage.fileMetadata.dataFile.filePackage and FilePage.file.identifier != null}">
<div class="form-group" jsf:rendered="#{FilePage.publiclyDownloadable and !FilePage.fileMetadata.dataFile.filePackage}">
<label class="col-sm-3 control-label">
#{bundle['file.metadataTab.fileMetadata.downloadUrl.label']}
</label>
Expand Down
6 changes: 4 additions & 2 deletions src/test/java/edu/harvard/iq/dataverse/util/FileUtilTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -159,8 +159,10 @@ public void testgetFileDownloadUrl() {

@Test
public void testGetPublicDownloadUrl() {
assertEquals("null/api/access/datafile/:persistentId?persistentId=null", FileUtil.getPublicDownloadUrl(null, null));
assertEquals("https://demo.dataverse.org/api/access/datafile/:persistentId?persistentId=doi:10.5072/FK2/TLU3EP", FileUtil.getPublicDownloadUrl("https://demo.dataverse.org", "doi:10.5072/FK2/TLU3EP"));
assertEquals(null, FileUtil.getPublicDownloadUrl(null, null, null));
assertEquals("https://demo.dataverse.org/api/access/datafile/:persistentId?persistentId=doi:10.5072/FK2/TLU3EP", FileUtil.getPublicDownloadUrl("https://demo.dataverse.org", "doi:10.5072/FK2/TLU3EP", 33L)); //pid before fileId
assertEquals("https://demo.dataverse.org/api/access/datafile/:persistentId?persistentId=doi:10.5072/FK2/TLU3EP", FileUtil.getPublicDownloadUrl("https://demo.dataverse.org", "doi:10.5072/FK2/TLU3EP", null));
assertEquals("https://demo.dataverse.org/api/access/datafile/33", FileUtil.getPublicDownloadUrl("https://demo.dataverse.org", null, 33L)); //pid before fileId
}

@Test
Expand Down