From 1585c9e29aba9d5bc477911790639125d7864ebb Mon Sep 17 00:00:00 2001 From: gexce Date: Thu, 2 Nov 2017 11:23:16 +0100 Subject: [PATCH] File Upload Error --- ...tegories_131017_EDITED_without_archive.csv | 4 +- ...egories_131017_EDITED_without_archive.xlsx | Bin 35399 -> 35394 bytes .../resources/application.properties | 3 +- .../edam/migration/MamMigrationSelective.java | 128 +++++++++++++++--- .../attic/MediaAssistantMigrationSimple.java | 2 +- .../LoggingRequestInterceptor.java | 2 +- 6 files changed, 115 insertions(+), 24 deletions(-) rename AH MAM Migration/src/com/bayer/edam/migration/{ => interceptors}/LoggingRequestInterceptor.java (95%) diff --git a/AH MAM Migration/resources/Media_Assistant_Categories_131017_EDITED_without_archive.csv b/AH MAM Migration/resources/Media_Assistant_Categories_131017_EDITED_without_archive.csv index 9f75966..abbba06 100644 --- a/AH MAM Migration/resources/Media_Assistant_Categories_131017_EDITED_without_archive.csv +++ b/AH MAM Migration/resources/Media_Assistant_Categories_131017_EDITED_without_archive.csv @@ -497,8 +497,8 @@ keyword;;;;;;;Packaging Images;;; classify;BusinessUnit.FAP,Brand.FAP.Others;;;;FAP Brand Design;;;;; skip;;;;;;Farm Animal Products;;;; skip;;;;;;Farmhygiene Products;;;; -classify;;;;;Packaging;;;;; -classify;;;;;;Absolut;;;; +skip;;;;;Packaging;;;;; +skip;;;;;;Absolut;;;; classify;Brand.Advantage;;;;;Advantage;;;; classify;Brand.Advantix;;;;;Advantix;;;; skip;;;;;Training Tools MA;;;;; diff --git a/AH MAM Migration/resources/Media_Assistant_Categories_131017_EDITED_without_archive.xlsx b/AH MAM Migration/resources/Media_Assistant_Categories_131017_EDITED_without_archive.xlsx index 941ad2339f406b158e64c4cae84d0f9256d82651..5ecbf26d8de415e9ef9453d85774a9c4dd300fc7 100644 GIT binary patch delta 17922 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 Ih5!Hn03+X8YXATM delta 18007 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 entrySelection = new ArrayList(Arrays.asList( 63701, 63711, 43182 )); // 72048, 60984 + private List entrySelection = new ArrayList(Arrays.asList( 48147 /* 58443/*, 53787, 32427, 71725, 63080*/ )); // 72048, 60984 static final String categoryJson = "resources/2017-10-19_categories.json"; static final String categoryMapping = "resources/Media_Assistant_Categories_131017_EDITED_without_archive.csv"; - - static final File entryLog = new File("entry.log"); - - static final String fieldSeparator = "|~|"; - static final String lineSeparator = "\r\n"; @Value("${mam.auth}") private String mamAuth; @@ -69,7 +70,7 @@ public class MamMigrationSelective implements CommandLineRunner { private String adamAuth; RestTemplate restTemplate; - HttpHeaders adamHeaders, mamHeaders; + HttpHeaders adamHeaders, adamUploadHeaders, mamHeaders; HttpEntity adamHeadersEntity; private SimpleDateFormat isoDate = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm'Z'"); @@ -80,6 +81,12 @@ public class MamMigrationSelective implements CommandLineRunner { private List campaigns = new LinkedList(); private CategoryTree mamCategoryTree; + + static final SimpleDateFormat filenameDate = new SimpleDateFormat("yyyy-MM-dd_HH-mm-ss"); + static final File entryLog = new File("entry_" + filenameDate.format(new Date()) + ".log"); + static final String fieldSeparator = "|~|"; + static final String lineSeparator = "\r\n"; + @Override public void run(String... strings) throws Exception { @@ -99,6 +106,9 @@ public class MamMigrationSelective implements CommandLineRunner { adamHeaders = createAdamHeaders(); adamHeadersEntity = new HttpEntity("", adamHeaders); + adamUploadHeaders = createAdamHeaders(); + adamUploadHeaders.set("Content-Type", "multipart/form-data"); + adamUploadHeaders.set("Accept", "*/*"); mamHeaders = createMamHeaders(); log.info("Read campaigns"); @@ -118,7 +128,7 @@ public class MamMigrationSelective implements CommandLineRunner { // XXX // if needed start from a certain ID -// if (id > 71731) +// if (id > 32954) // continue; @@ -238,11 +248,7 @@ public class MamMigrationSelective implements CommandLineRunner { } if (p.startsWith("MediaType.")) { - record.removeClassification("MediaType."); - } - - if (p.startsWith("Motive.")) { - record.removeClassification("Motive."); + record.removeClassificationsStartingWith("MediaType."); } record.addClassification(p); @@ -431,11 +437,17 @@ public class MamMigrationSelective implements CommandLineRunner { // Create record HttpEntity httpEntity = new HttpEntity(record, adamHeaders); try { - URI location = restTemplate.postForLocation(adamHost + "/records", httpEntity, UploadRecord.class); - log.info("RESULT Entry " + entry.id + " migrated to record " + location); - - FileUtils.writeStringToFile(entryLog, entry.id + fieldSeparator + location.toString() + fieldSeparator + entryJson + lineSeparator, - Charset.forName("utf-8"), true); + +// URI location = restTemplate.postForLocation(adamHost + "/records", httpEntity, UploadRecord.class); +// log.info("RESULT Entry " + entry.id + " migrated to record " + location); + + // XXX + uploadFilesForEntry(entry); + + // TODO process file upload errors + +// FileUtils.writeStringToFile(entryLog, entry.id + fieldSeparator + location.toString() + fieldSeparator + entryJson + lineSeparator, +// Charset.forName("utf-8"), true); } catch (HttpStatusCodeException hsce) { log.error("RESULT Skipping entry " + entry.id + ": Error while creating record " + hsce.getStatusCode().toString()); @@ -443,6 +455,84 @@ public class MamMigrationSelective implements CommandLineRunner { } } + + private void uploadFilesForEntry(Entry entry) { + + List downloadSelection = new ArrayList(); + + // Select download: Download original only. If original is not available, download largest file + Download selectedDownload = null; + for (Download download : entry.downloadList) { + if (download.entryFileVariation.equals("ORIGINAL")) { + selectedDownload = download; + break; + } + + if (selectedDownload == null) { + selectedDownload = download; + } + else if (selectedDownload.size < download.size) { + selectedDownload = download; + } + } + + if (selectedDownload != null) + downloadSelection.add(selectedDownload); + + for (Download download : entry.downloadListPublicFolder) { + downloadSelection.add(download); + } + + // Clean download selection + HashSet hrefs = new HashSet(); + List cleanedDownloads = new ArrayList(); + for (Download download : downloadSelection) { + if (hrefs.add(download.href)) { + cleanedDownloads.add(download); + } + } + + // Instead of downloading from MAM, take the pre-downloaded files from the harddrive + for (Download download : cleanedDownloads) { + String filenameToUse; + if (download.fileNameOnDisc != null) + filenameToUse = download.fileNameOnDisc; + else + filenameToUse = download.fileName; + + String filepath = "E:\\" + entry.id + "\\" + filenameToUse; + File uploadFile = new File(filepath); + + if (uploadFile.exists()) { + if (uploadFile.length() < 4000000000L) { + log.debug("filesize " + uploadFile.length() + " < 4 GB"); + + log.info("Uploading file " + filepath); + + MultiValueMap parameters = new LinkedMultiValueMap(); + parameters.add("file", new FileSystemResource(uploadFile)); + + String result = restTemplate.postForObject(adamHost + "/uploads", + new HttpEntity>(parameters, adamUploadHeaders), String.class); + +// String answer = restTemplate.exchange(adamHost + "/uploads", HttpMethod.POST, +// new HttpEntity>(parameters, adamUploadHeaders), String.class).getBody(); + + log.info("Upload result: " + result); + + } + else { + log.debug("filesize " + uploadFile.length() + " > 4 GB!!!1!"); + } + } + else { + log.error("Could not find file on disk " + filepath); + } + } + + + } + private void readEntryIDsFromFile() throws IOException { File entryIdListFile = new File("resources/entrylist_2017-10-25.txt"); log.debug("Reading entry IDs from " + entryIdListFile.getAbsolutePath()); diff --git a/AH MAM Migration/src/com/bayer/edam/migration/attic/MediaAssistantMigrationSimple.java b/AH MAM Migration/src/com/bayer/edam/migration/attic/MediaAssistantMigrationSimple.java index cdc8004..829dfe3 100644 --- a/AH MAM Migration/src/com/bayer/edam/migration/attic/MediaAssistantMigrationSimple.java +++ b/AH MAM Migration/src/com/bayer/edam/migration/attic/MediaAssistantMigrationSimple.java @@ -22,10 +22,10 @@ import org.springframework.http.client.SimpleClientHttpRequestFactory; import org.springframework.web.client.HttpClientErrorException; import org.springframework.web.client.RestTemplate; -import com.bayer.edam.migration.LoggingRequestInterceptor; import com.bayer.edam.migration.adam.ReadRecord; import com.bayer.edam.migration.adam.Token; import com.bayer.edam.migration.adam.UploadRecord; +import com.bayer.edam.migration.interceptors.LoggingRequestInterceptor; import com.bayer.edam.migration.mam.Entry; public class MediaAssistantMigrationSimple { diff --git a/AH MAM Migration/src/com/bayer/edam/migration/LoggingRequestInterceptor.java b/AH MAM Migration/src/com/bayer/edam/migration/interceptors/LoggingRequestInterceptor.java similarity index 95% rename from AH MAM Migration/src/com/bayer/edam/migration/LoggingRequestInterceptor.java rename to AH MAM Migration/src/com/bayer/edam/migration/interceptors/LoggingRequestInterceptor.java index 368b48a..2cb8eb5 100644 --- a/AH MAM Migration/src/com/bayer/edam/migration/LoggingRequestInterceptor.java +++ b/AH MAM Migration/src/com/bayer/edam/migration/interceptors/LoggingRequestInterceptor.java @@ -1,4 +1,4 @@ -package com.bayer.edam.migration; +package com.bayer.edam.migration.interceptors; import java.io.BufferedReader; import java.io.IOException;