如何在Data Fusion Studio中使用GCS Delete?

问题描述

很抱歉,但这很简单,但是我是GCP的一个完整的初学者。

我创建了一条管线,该管线从存储桶中拾取多个CSV,将它们纠缠然后将其写入BigQuery。我希望它然后删除文件来自的存储桶文件夹的内容。因此,假设我使用gs://bucket/Data/Country/*.CSV提取了CSV,可以使用GCS Delete删除那里的所有CSV吗?

作为绝望的尝试:D,在要删除的对象中,我指定了gs://bucket/Data/Country/*.*,但这没做任何事情。

解决方法

根据Google Cloud Storage Delete plugin documentation,有必要将每个对象都用逗号分隔。

feature request要求使用此插件时允许使用后缀和前缀,您可以使用 +1 按钮并提供有关此功能的有用性的反馈。

另一方面,我认为这是一种可能适合您的解决方法。使用GCS documentation,我创建了一个脚本来列出存储桶中的所有 csv 对象,只需复制输出并将其粘贴到要删除的对象属性中的插件。值得一提的是,我少用了100个文件就使用了该变通方法,我不确定使用大量文件是否可行。


from google.cloud import storage
bucket_name="MY_BUCKET"
file_format="csv"

def list_csv(bucket_name):
    storage_client = storage.Client()
    blobs = storage_client.list_blobs(bucket_name)
    for blob in blobs:
        if file_format in blob.name:
            print("gs://"+ bucket_name + "/" + blob.name+",")
    return None

list_csv(bucket_name)