[英]Downloading the folder from remote server using Java
我有一個情況。 我正在使用JPasskit生成Apple Pass。 這個JPasskit的工作原理如下:1)它將圖像文件夾的位置作為URL或String作為輸入。 2)如果是URL,則忽略主機名和端口,並考慮其余路徑。 3)然后它將該文件夾的內容(在步驟1中獲取的路徑)復制到新的臨時文件夾4)然后它將關閉臨時文件夾,並在生成傳遞后刪除臨時文件夾。
如果文件夾位於本地,則工作正常。 但我們使用Alfresco作為我們的內容管理服務器,所有圖像都位於Alfresco。 因此,我必須將路徑作為URL 主機名:port / folder1 / folder2 / folder3 ,其中API解碼為/ folder1 / folder2 / folder3並拋出FileNotFoundException,因為它無法在其本地目錄結構中找到路徑。 所以我需要一些建議,如何使用java從Alfresco服務器(linux服務器)下載文件夾,並創建一個臨時文件夾,就像這個api一樣。 這將允許我覆蓋JPasskit API中的特定方法調用,該調用將文件夾內容復制到臨時文件夾中。
任何有關的幫助或建議都非常感謝。
我在下面添加了代碼,用於創建pass的JPasskit api。 第一個方法createSignedAndZippedPkPassArchive將URL作為屬性,並從URL中剝離hostname:port ,並將其余路徑作為String傳遞給其重載版本。 我正在考慮重載此方法以從Alfresco上的適當路徑下載圖像文件夾,然后相應地繼續。
public static byte[] createSignedAndZippedPkPassArchive(final PKPass pass, final URL fileUrlOfTemplateDirectory,
final PKSigningInformation signingInformation) throws Exception {
String pathToTemplateDirectory = URLDecoder.decode(fileUrlOfTemplateDirectory.getFile(), "UTF-8");
return createSignedAndZippedPkPassArchive(pass, pathToTemplateDirectory, signingInformation);
}
public static byte[] createSignedAndZippedPkPassArchive(final PKPass pass, final String pathToTemplateDirectory,
final PKSigningInformation signingInformation) throws Exception {
File tempPassDir = Files.createTempDir();
FileUtils.copyDirectory(new File(pathToTemplateDirectory), tempPassDir);
ObjectMapper jsonObjectMapper = new ObjectMapper();
jsonObjectMapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false);
jsonObjectMapper.setDateFormat(new ISO8601DateFormat());
createPassJSONFile(pass, tempPassDir, jsonObjectMapper);
File manifestJSONFile = createManifestJSONFile(tempPassDir, jsonObjectMapper);
signManifestFile(tempPassDir, manifestJSONFile, signingInformation);
byte[] zippedPass = createZippedPassAndReturnAsByteArray(tempPassDir);
FileUtils.deleteDirectory(tempPassDir);
return zippedPass;
}
謝謝,達莫達爾
你可以使用CMIS協議,它是一個標准,它集成在Alfresco中,或者你可以開發一個webscript,提供一個跟隨參數的文件(nodRef,fileName,type ...)。
有一個Java api,在你的項目中添加一些JAR,並且有一種方法可以連接到Alfresco和文件
該代碼僅用於處理file:// URL,因此只需忽略主機名。 您需要從遠程服務器復制數據以按原樣使用代碼,如何執行此操作取決於您連接到Alfresco的方式。
您可以開發webscript以上傳文件
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.