问题描述
很抱歉,但这很简单,但是我是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)