Google cloud storage 检查是否存在blob

Google cloud storage 检查是否存在blob,google-cloud-storage,airflow,google-cloud-composer,Google Cloud Storage,Airflow,Google Cloud Composer,我试图构建一个DAG,首先检查Google云存储中是否存在给定的路径/blob。blob包含一些原始数据,而不是装载在Composer workers上的blob 或者,可以很方便地一次性查看它是否存在并包含文件列表>1,但existance已经是一件好事情 到目前为止,我尝试通过bash命令使用gsutil统计数据、google.cloud.storage库和gcs_钩子,但都没有成功。对于一个我很确定存在的文件夹,它们都返回False def check_foldertemplates_di

我试图构建一个DAG,首先检查Google云存储中是否存在给定的路径/blob。blob包含一些原始数据,而不是装载在Composer workers上的blob

或者,可以很方便地一次性查看它是否存在并包含文件列表>1,但existance已经是一件好事情

到目前为止,我尝试通过bash命令使用gsutil统计数据、google.cloud.storage库和gcs_钩子,但都没有成功。对于一个我很确定存在的文件夹,它们都返回False

def check_foldertemplates_dict,**kwargs: bucket='bucketname' blob\u name=模板dict['blob\u name'] Blob名称与“2019-04-10/11/”类似 gcs=GoogleCloudStorageHook flag=gcs.existsbucket,blob\u名称 如果标志: 打印标志 返回“这是真的” 其他: 打印标志 返回“这不是真的” 对于一个给定的blob_名称,我确信它确实存在,我希望它是true,但它总是返回False。知道发生了什么吗?谢谢

GoogleCloudStorageHook中的exists函数检查对象,不支持使用前缀。如果要检查给定前缀中是否有任何数据,则需要使用list函数

例如:

if bool(hook.list(bucket, prefix=prefix)):
    print('some data is in my folder!')
您可能还想检查传感器的实现,因为它与您正在做的非常相似。

Google CloudStorageHook中的exists函数检查对象,不支持使用前缀。如果要检查给定前缀中是否有任何数据,则需要使用list函数

例如:

if bool(hook.list(bucket, prefix=prefix)):
    print('some data is in my folder!')
您可能还想检查传感器的实现,因为它与您正在做的非常相似