**Description**

Support passing multiple prefixes to `GoogleCloudStorageListOperator` and `GoogleCloudStorageDeleteOperator` operators.

**Use case / motivation**

I have this folder structure in GCS bucket.

```
+-- year={year}
|   +-- month={month}
|       +--day={day}
|           +-- topic={topic1}
|                 +--file 1
|                 +--file 2
|                 +--file 3
|           +-- topic={topic2}
|                 +--file 1
|                 +--file 2
|                 +--file 3
|           +-- topic={topic3}
|                 +--file 1
|                 +--file 2
|                 +--file 3
|           +-- topic={topic4}
|                 +--file 1
|                 +--file 2
|                 +--file 3
|           +-- topic={topic5}
|                 +--file 1
|                 +--file 2
|                 +--file 3
|           +-- topic={topic6}
|                 +--file 1
|                 +--file 2
|                 +--file 3
|           +-- topic={topic7}
|       +--day={day}
|           +-- topic={topic1}
|                 +--file 1
|                 +--file 2
|                 +--file 3
|           +-- topic={topic2}
|                 +--file 1
|                 +--file 2
|                 +--file 3
|           +-- topic={topic3}
|                 +--file 1
|                 +--file 2
|                 +--file 3
|           +-- topic={topic4}
|                 +--file 1
|                 +--file 2
|                 +--file 3
|           +-- topic={topic5}
|                 +--file 1
|                 +--file 2
|                 +--file 3
|           +-- topic={topic6}
|                 +--file 1
|                 +--file 2
|                 +--file 3
|           +-- topic={topic7}
|                 +--file 1
|                 +--file 2
|                 +--file 3
|           ....
```

What I need to achieve is delete one day of objects. For example, I need to delete objects in `year=2020/month=08/day=19`. I can do that easily using `gsutils`. In `gsutil` you can delete them via wild card `gsutil ear=2020/month=08/day=19/*` but using the REST APIs you can't even if you use a prefix. The reason is there is no one prefix to get all the objects inside a folder. I achieved that by using multiple prefixes and for each prefix, I will get the list of objects. Unfortunately, I can't pass more than one prefix to the operators.

**Prefixes used**
- `year=2020/month=08/day=19/topic={topic1}`
- `year=2020/month=08/day=19/topic={topic2}`
- `year=2020/month=08/day=19/topic={topic3}`
- `year=2020/month=08/day=19/topic={topic4}`
- `year=2020/month=08/day=19/topic={topic5}`
- `year=2020/month=08/day=19/topic={topic6}`
- `year=2020/month=08/day=19/topic={topic7}`

"""
    Return True if given Google Cloud Storage URL (gs://<bucket>/<blob>)
    is a directory or an empty bucket. Otherwise return False.
    """
    _, blob = _parse_gcs_url(bucket)
    return len(blob) == 0 or blob.endswith("/")
def _parse_gcs_url(gsurl: str) -> tuple[str, str]:
    """
    Given a Google Cloud Storage URL (gs://<bucket>/<blob>), returns a
    tuple containing the corresponding bucket and blob.
    """
    parsed_url = urlsplit(gsurl)
    if not parsed_url.netloc:
        raise AirflowException("Please provide a bucket name")
    if parsed_url.scheme.lower() != "gs":
        raise AirflowException(f"Schema must be to 'gs://': Current schema: '{parsed_url.scheme}://'")
    bucket = parsed_url.netloc
    
    blob = parsed_url.path.lstrip("/")
    return bucket, blob
class GCSAsyncHook(GoogleBaseAsyncHook):
    """GCSAsyncHook run on the trigger worker, inherits from GoogleBaseHookAsync"""
    sync_hook_class = GCSHook
    async def get_storage_client(self, session: ClientSession) -> Storage:
        """Returns a Google Cloud Storage service object."""
        with await self.service_file_as_context() as file:
            return Storage(service_file=file, session=cast(Session, session))