如何使用PowerShell将Artifactory文件夹下载为tar.gz归档文件
问题根因
- 错误添加了
Content-Type: multipart/form-data请求头:该请求头仅适用于POST提交文件/表单的场景,GET请求携带该头会导致Artifactory归档接口无法正确识别请求意图,返回目录浏览HTML页面而非二进制归档包。单文件下载接口对请求头校验宽松,因此未触发该问题。 Invoke-RestMethod更适配结构化响应(如JSON/XML),下载二进制文件时可能出现自动转码导致的内容损坏,优先级低于专门用于资源下载的Invoke-WebRequest。
修复方案
使用以下PowerShell命令即可正常下载tar.gz格式的目录归档:
Invoke-WebRequest -Uri "https://artifactory.<myrepo.com>/path/to/files?archiveType=tar.gz" ` -Method Get ` -Headers @{'X-JFrog-Art-Api' = '<my API key>'} ` -OutFile .\file_location\filename.tar.gz
如果使用的是Windows PowerShell 5.1及更早版本,可额外添加-UseBasicParsing参数避免依赖IE引擎导致的解析错误:
Invoke-WebRequest -Uri "https://artifactory.<myrepo.com>/path/to/files?archiveType=tar.gz" ` -Method Get ` -Headers @{'X-JFrog-Art-Api' = '<my API key>'} ` -OutFile .\file_location\filename.tar.gz ` -UseBasicParsing
验证方法
下载完成后可执行以下命令查看归档内文件列表,确认内容符合预期:
tar -tzf .\file_location\filename.tar.gz
内容的提问来源于stack exchange,提问作者EJSABOLK
相关产品推荐
相关产品推荐

