Vorlagen ergänzt
This commit is contained in:
58
_Vorlagen/Groovy-Skripte/downloadDocuments.groovy
Normal file
58
_Vorlagen/Groovy-Skripte/downloadDocuments.groovy
Normal file
@@ -0,0 +1,58 @@
|
||||
import com.dvelop.d3.server.core.D3
|
||||
import groovy.json.JsonSlurper
|
||||
import javax.net.ssl.HttpsURLConnection
|
||||
|
||||
/**
|
||||
* Beispiel um Dokumente anhand einer Kategorie und einer Eigenschaft zu suchen und mit dem JSON arbeiten zu können
|
||||
*/
|
||||
void searchDocuments(D3 d3, String sessionId, String searchCategory, String searchPropertyKey, String searchPropertyValue) {
|
||||
String searchFor = "?sourceid=/dms/r/$REPO_ID/source&sourcecategories=[\"$searchCategory\"]&sourceproperties={\"$searchPropertyKey\":[\"$searchPropertyValue\"]}"
|
||||
String baseRequest = "$BASE_URI/dms/r/$REPO_ID/srm$searchFor"
|
||||
|
||||
HttpsURLConnection request = new URL(baseRequest).openConnection() as HttpsURLConnection
|
||||
request.requestMethod = "GET"
|
||||
request.setRequestProperty("Origin", BASE_URI)
|
||||
request.setRequestProperty("Accept", "application/json")
|
||||
request.setRequestProperty("Authorization", "Bearer $sessionId")
|
||||
|
||||
if (request.responseCode == 200) {
|
||||
def json = request.inputStream.withCloseable { stream ->
|
||||
new JsonSlurper().parse(stream as InputStream)
|
||||
}
|
||||
|
||||
//Alle gefundenen Dokumente durchgehen
|
||||
json.items?.each {
|
||||
//Dateinamen mit Endung jedes Dokuments holen
|
||||
String fileName = it.sourceProperties.find { property -> property.key == "property_filename" }.value
|
||||
File file = new File(exportDirectory, fileName)
|
||||
|
||||
//Download starten
|
||||
downloadDocument(d3, sessionId, it._links.mainblobcontent.href, file.getPath())
|
||||
}
|
||||
|
||||
} else {
|
||||
d3.log.error("Fehler bei der Suche nach Dokumenten $request.responseCode: $request.responseMessage")
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Beispiel um ein Dokument herunter zu laden
|
||||
*/
|
||||
void downloadDocument(D3 d3, String sessionId, String downloadUrl, String filePath) {
|
||||
String baseRequest = BASE_URI + downloadUrl
|
||||
|
||||
HttpsURLConnection request = new URL(baseRequest).openConnection() as HttpsURLConnection
|
||||
request.requestMethod = "GET"
|
||||
request.setRequestProperty("Origin", BASE_URI)
|
||||
request.setRequestProperty("Accept", "application/json")
|
||||
request.setRequestProperty("Authorization", "Bearer $sessionId")
|
||||
|
||||
if (request.responseCode == 200) {
|
||||
d3.log.info("Starte Download von: " + downloadUrl)
|
||||
request.inputStream.withCloseable { stream ->
|
||||
new File(filePath) << stream.getBytes()
|
||||
}
|
||||
} else {
|
||||
d3.log.error("Fehler beim Herunterladen von $baseRequest")
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user