簡體   English   中英

使用Java從遠程服務器下載文件夾

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM