使用 PowerShell 下载 Artifactory 文件夹作为存档

Download Artifactory Folder as an Archive using PowerShell

我正在尝试使用 PowerShell 命令行将 Artifactory 文件夹下载为 tar.gz 文件。在 Bash 中,以下命令完成工作:

    curl -i -v -XGET -H 'X-JFrog-Art-Api:<my API key>' "https://artifactory.<myrepo.com>/path/to/files?archiveType=tar.gz" --output ./file_location/filename.tar.gz

然而,在 PowerShell 中,这似乎不起作用:

    Invoke-RestMethod -uri "https://artifactory.<myrepo.com>/path/to/files?archiveType=tar.gz" -Method 'Get' -OutFile .\file_location\filename.tar.gz -H @{'X-JFrog-Art-Api' ='<my API key>';'Content-Type'='multipart/form-data'}

此操作创建文件名。tar.gz,但该文件只是一个 HTML 文件,给出目录结构而不是实际文件。

如果我只想要单个文件,我可以使用 PowerShell 下载文件(不是存档):

    Invoke-RestMethod -uri "https://artifactory.<myrepo.com>/path/to/files/filename.xyz" -Method 'Get' -OutFile .\file_location\filename.xyz -H @{'X-JFrog-Art-Api' ='<my API key>';'Content-Type'='multipart/form-data'}

和filename.xyz被传输到本地机器。所以我有点困惑为什么制作存档的工具会失败。

我想通了!

Invoke-RestMethod -Uri "https://my-artifactory-server/artifactory/api/archive/download/path/to/some/folder?archiveType=zip -Method "Get" -Headers @{"Authorization"="Basic $my_artifactory_api_token"; 'Content-Type'='multipart/form-data'} -Outfile c:\destination_location\folder.zip

您需要在主机名后的 Uri 中添加“api/archive/download”。