在Google Cloud Storage中,“文件夹"是一种虚拟的概念,通常通过blob的名称(包含斜杠”/“)来表示。因此,我们不能直接删除一个"文件夹”,但是我们可以删除所有名称以特定前缀(即"文件夹"的名称)开始的blob,从而达到删除"文件夹"的效果。
顺便提一下,blob.exists()不能判断文件夹是否存在。
以下是一个示例代码,用于删除一个"文件夹"及其下的所有文件:
- from google.cloud import storage
-
- def delete_folder(bucket_name, folder_name):
- storage_client = storage.Client()
- bucket = storage_client.bucket(bucket_name)
- blobs = bucket.list_blobs(prefix=folder_name)
- for blob in blobs:
- blob.delete()
-
- # 使用方法
- bucket_name = 'my_bucket_name' # 替换为你的bucket名称
- folder_name = 'my_folder/' # 替换为你想要删除的文件夹名称
- delete_folder(bucket_name, folder_name)
这个函数delete_folder
会删除所有名称以"文件夹"的名称开始的blob。请注意,“文件夹"的名称应该以斜杠(”/")结束。在执行这个操作时,请确保你有足够的权限,