Gsutil - 如何使用Gsutil检查GCS存储桶(子目录)中是否存在文件

act*_*ner 10 python google-cloud-storage gsutil

我有一个GCS存储桶包含路径中的一些文件

GS://main-bucket/sub-directory-bucket/object1.gz

我想以编程方式检查子目录存储桶是否包含一个特定文件.我想用gsutil来做这件事.

怎么可以这样做?

小智 14

如果您的脚本允许非零退出代码,则:

#!/bin/bash

file_path=gs://main-bucket/sub-directory-bucket/object1.gz
gsutil -q stat $file_path
status=$?

if [[ $status == 0 ]]; then
  echo "File exists"
else
  echo "File does not exist"
fi

Run Code Online (Sandbox Code Playgroud)

但是,如果您的脚本设置为因错误而失败,则您不能使用退出代码。这是一个替代解决方案:

#!/bin/bash
trap 'exit' ERR

file_path=gs://main-bucket/sub-directory-bucket/object1.gz
result=$(gsutil -q stat $file_path || echo 1)
if [[ $result != 1 ]]; then
  echo "File exists"
else
  echo "File does not exist"
fi

Run Code Online (Sandbox Code Playgroud)


小智 7

使用gsutil stat命令。要访问包含更多文件的子目录,请使用通配符 (*)。

例如:

gsutil -q stat gs://some-bucket/some-subdir/*; echo $?
Run Code Online (Sandbox Code Playgroud)

在你的情况下:

gsutil -q stat gs://main-bucket/sub-directory-bucket/*; echo $?
Run Code Online (Sandbox Code Playgroud)

结果0表示存在1表示不存在


jte*_*ace 6

您可以使用gsutil stat命令.