使用通配符 cURL 在管道中上传文件
Uploading files in pipeline with wildcard cURL
我目前 运行 一个依赖 Google 云平台构建文件的管道。我们希望自动执行最后一步,即文件上传。
- "gcloud compute ssh build-server-turnoff-when-unused --zone=europe-west4-a --command 'cd /mnt/disks/sdb/Project/ci_dev/tmp/deploy/images/project && curl -F 'image=@*.raucb' http://upload.url.com/upload'"
现在的问题是 curl -F 似乎不接受通配符,是否可以完成此操作?
请注意,您的命令有两组“ ”,一组在另一组中,没有退格键
无论如何,
gcloud compute ssh build-server-turnoff-when-unused --zone=europe-west4-a --command "bash -c 'cd /mnt/disks/sdb/Project/ci_dev/tmp/deploy/images/project && for fileimg in *.raucb; do curl -F image="${fileimg}" http://upload.url.com/upload ; done '"
备注:
- 我使用“bash -c”传递给 --command,因此它只会远程生成一个进程(避免环境问题)
cd &&
而不是 cd ;
这样如果 cd 失败,for 就不会 运行
- double
"
inside single '
inside double "
以避免过度转义(备用引号技巧)
- foreach 循环中不需要文件扩展名
for fileimg in *.raucb
变量 $fileimg 将包含完整文件名
- 必须将变量的 $ 引用为
$
否则它会被父 shell 解释
我目前 运行 一个依赖 Google 云平台构建文件的管道。我们希望自动执行最后一步,即文件上传。
- "gcloud compute ssh build-server-turnoff-when-unused --zone=europe-west4-a --command 'cd /mnt/disks/sdb/Project/ci_dev/tmp/deploy/images/project && curl -F 'image=@*.raucb' http://upload.url.com/upload'"
现在的问题是 curl -F 似乎不接受通配符,是否可以完成此操作?
请注意,您的命令有两组“ ”,一组在另一组中,没有退格键
无论如何,
gcloud compute ssh build-server-turnoff-when-unused --zone=europe-west4-a --command "bash -c 'cd /mnt/disks/sdb/Project/ci_dev/tmp/deploy/images/project && for fileimg in *.raucb; do curl -F image="${fileimg}" http://upload.url.com/upload ; done '"
备注:
- 我使用“bash -c”传递给 --command,因此它只会远程生成一个进程(避免环境问题)
cd &&
而不是cd ;
这样如果 cd 失败,for 就不会 运行- double
"
inside single'
inside double"
以避免过度转义(备用引号技巧) - foreach 循环中不需要文件扩展名
for fileimg in *.raucb
变量 $fileimg 将包含完整文件名 - 必须将变量的 $ 引用为
$
否则它会被父 shell 解释