パスにいくつかのファイルを含むGCSバケットがあります
gs://main-bucket/sub-directory-bucket/object1.gz
サブディレクトリバケットに特定のファイルが1つ含まれているかどうかをプログラムで確認したいと思います。 gsutilを使用してこれを実行したいと思います。
これはどのように行うことができますか?
gsutil stat コマンドを使用できます。
gsutil stat コマンドを使用します。ファイル数が多いサブディレクトリにアクセスするには、ワイルドカード(*)を使用します。
例えば:
gsutil -q stat gs://some-bucket/some-subdir/*; echo $?
あなたの場合:
gsutil -q stat gs://main-bucket/sub-directory-bucket/*; echo $?
結果は存在する; 1は存在しないことを意味します
もあります gsutil ls
( https://cloud.google.com/storage/docs/gsutil/commands/ls )
例えば.
gsutil ls gs://my-bucket/foo.txt
出力は、同じファイルパスまたは「CommandException: One or more URLs matched no objects.
"
何らかの理由でそのリストの結果に応じて何かをしたい場合(たとえば、ディレクトリに寄木細工のファイルがある場合は、bqテーブルをロードします):
gsutil -q stat gs://dir/*.parquet; if [ $? == 0 ]; then bq load ... ; fi