【问题标题】:Transfer all files from FTP server to Artifactory Generic repo将所有文件从 FTP 服务器传输到 Artifactory Generic repo
【发布时间】:2024-01-17 02:16:02
【问题描述】:

我有一个 FTP 服务器,其中有很多文件(大约 400 GB),遵循特定的目录结构。但是我需要从 FTP 迁移到 Jfrog 工件。有什么方法可以将此 FTP 服务器下的整个文件复制到 Jfrog 工件 Generic type 存储库,同时保留 FTP 中使用的文件夹结构。

我尝试从 UI 部署为存档(基本上使用 REST API)。但是我们可以将它们作为 100MB 的块上传是有限制的,我采用这种方法变得乏味。

谁能建议其他更好的方法(命令行或编程方式或 REST 方式)来做到这一点?

【问题讨论】:

    标签: ftp artifactory


    【解决方案1】:

    我认为您正在寻找Repository Import REST API:

    POST /api/import/repositories?repo=<repository name>&path=<location in filesystem>
    

    这应该将path 的文件夹结构和文件复制到repo。当然,要使其正常工作,您的 FTP 内容必须在 Artifactory 的文件系统中可见。

    【讨论】:

    • 但是我的 ftp 服务器和 artifactory 托管在不同的服务器上。在那种情况下如何使这项工作?
    • @VishnuLakkimsetty 据我所知,有多种方法可以像文件系统一样挂载/访问 FTP 共享。见FTPFS
    • 我按照您在安装 FTP 的文件夹中的建议尝试了 POST 调用。但我得到了以下错误。 POST /api/import/repositories?repo=testrepo&path=/net/slc12ipc/scratch/apache-ftpserver-1.1.1/res/home [1] 119495 bash-4.1$ 请输入内容(application/x-www-form- urlencoded)要发布:我不确定它还期待什么
    • 您可能最好使用curl 命令,如下所示:curl -u &lt;username&gt;:&lt;password&gt; -X POST "https://&lt;artifactory domain&gt;/artifactory/api/import/repositories?repo=testrepo&amp;path=/net/slc12ipc/scratch/apache-ftpserver-1.1.1/res/home"
    • 我需要提供哪个用户名和密码?? FTP 还是 Artifactory?
    【解决方案2】:

    您可以使用 JFrog CLI 将整个目录上传到 Artifactory https://www.jfrog.com/confluence/pages/viewpage.action?pageId=53577563

    因此,在您的情况下,唯一的要求是 FTP 服务器可以通过 HTTP/HTTPS 连接到 Artifactory。

    然后您只需将 JFrog CLI 下载到 FTP 服务器并上传您的文件:

    jfrog rt u "path_to_files/*" my-local-repo/ftp_copy

    【讨论】:

      最近更新 更多