我正在尝试使用Curl command line
工具将文件上传到服务器。上传的文件由构建工具生成,因此其名称是可变的,取决于项目的版本。
例如:
要上传的文件名称为:puppet-14.1.6-snapshot.zip //其中14.1.6是项目的版本
这是我的(工作)CURL命令:
curl -u admin:admin -F file = @" target / puppet-14.1.6-snapshot.zip" -F name =" puppet-core-pkg" -F force = true -F install = true http://myserver.com:4502/service.jsp
上述调用完美无缺,但我试图找到一个替代方案,每当新版本的项目结束时我都不需要更改文件参数。
我已经尝试过这两个
file=@"target/puppet-*-snapshot.zip" //Does not work
file=@"target/puppet-[*]-snapshot.zip" //Does not work
是否可以使用一些正则表达式并上传与给定正则表达式匹配的文件?
答案 0 :(得分:2)
我找到了一个临时的解决方法,但仍然不是一个令人信服的解决方案。在这里:
package_name=$(ls | grep puppet-)
curl -u admin:admin -F file=@"target/$package_name" -F name="puppet-core-pkg" -F force=true -F install=true http://myserver.com:4502/service.jsp
我知道只有一个文件与puppet-
匹配,因此package_name
包含要上传的文件名。
虽然这对我有用,但我打开这个问题以获得优雅的解决方案。
答案 1 :(得分:0)
这是目录中唯一的文件吗?如果是这样,那么你可以让变量获取目录中文件的名称,然后执行:
curl -u admin:admin -F file="$TheFile" # and so and so forth