Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用通配符cURL上载管道中的文件_Curl_Google Cloud Platform_Pipeline - Fatal编程技术网

使用通配符cURL上载管道中的文件

使用通配符cURL上载管道中的文件,curl,google-cloud-platform,pipeline,Curl,Google Cloud Platform,Pipeline,我目前正在运行一个依赖谷歌云平台构建文件的管道。我们想自动化最后一步,即文件上传 - "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.

我目前正在运行一个依赖谷歌云平台构建文件的管道。我们想自动化最后一步,即文件上传

   - "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”将命令传递给--,这样它只能远程生成单个进程(避免环境问题)
  • cd&
    而不是
    cd
    这样,如果cd出现故障,for将不会运行
  • 内单
    内双
    以避免过度转义(交替引号技巧)
  • foreach循环中不需要文件扩展名,与*.raucb中fileimg的
    一样,
    变量$fileimg将包含完整的文件名
  • 必须将变量的$引为
    \$
    ,否则它会被父shell解释

制作一个适合您的tar或循环吗?看看这个,我正在考虑编写一个bash脚本来制作一个循环。看起来,而且我仍然需要测试这个,curl-F不能在这个循环中运行,并在for循环中变成一个正常的curl。可能是因为curl-F需要'image=@/path/to/file'。我将在今天下午晚些时候对此进行测试。哦,对了,如果它需要@,那么可以添加它
image=“@\${fileimg}”
我忘了这是在YAML中,我在Shell中测试了它。让我知道ttest是如何进行的…我让它工作了,但不知怎的,它在bitbucket管道中断裂了,不知道为什么。