【发布时间】:2021-05-30 06:28:37
【问题描述】:
是否有 '''gsutil''' 命令可以告诉我路径 '''gs://bucket1/folder1_x/folder2_y/''' 是否存在? gsutil 中是否有“ping”命令? 我使用 Jenkins 参数 folder_x 和 folder_y 值由用户输入,并通过管道加入。目前,如果目录确实存在,则管道将显示成功。但是如果路径错误,流水线就会中断,显示失败。
尝试使用gsutil stat和gsutil -q stat,它可以测试'''gs://bucket1/folder1_x/folder2_y/file1''',但不能用于dir。
'''时髦的
管道{
stages {
stage('Check existing dirs') {
steps {
script{
if (params['Action'] =="List_etl-output") {
def Output_Data="${params['Datasource']}".toString().split(",").collect{"\"" + it + "\""}
def Output_Stage="${params['Etl_Output_Stage']}".toString().split(",").collect{"\"" + it + "\""}
for (folder1 in Output_Data) {
for (folder2 in Output_Stage) {
sh(script: """
gsutil ls -r gs://bucket1/*/$Data/$Stage
""" )
}
}
}
}
}
}
} }
'''
我使用 gsutil 检查路径 gs://bucket1/*/$Data/$Stage 是否可用。 $Data 和 $Stage 由用户输入给出,当路径不可用时 Jenkins 管道中断。我希望 gsutil 在不可用时可以跳过错误的路径。
【问题讨论】:
-
请注意,谷歌存储中没有通常意义上的文件夹,它会产生层次结构的错觉,而实际上它使用的是平面名称空间。
-
这里有更多内容:link。你可以做的是你可以尝试列出它,如果你得到一个例外 - 没有“文件夹”,否则如果列表只是“文件夹”本身 - 它是“空的”,否则如果列表有> = 2个条目- 它不是“空的”。
标签: google-cloud-platform bucket gsutil