### Apache Airflow Provider(s)

google

### Versions of Apache Airflow Providers

```
apache-airflow-providers-google: version 8.9.0
```

### Apache Airflow version

2.5.1

### Operating System

Linux -  official airflow image from docker hub apache/airflow:slim-2.5.1

### Deployment

Official Apache Airflow Helm Chart

### Deployment details

_No response_

### What happened

Not sure if it's a bug or a feature.

Originally I have used `LocalFilesystemToGoogleDriveOperator` to try uploading a file into a shared Google Drive without success.
Provider didn't find a directory with a given name so it created a new one without browsing `shared drives`. Method call that doesn't allow to upload it is here:
https://github.com/apache/airflow/blob/main/airflow/providers/google/suite/hooks/drive.py#L223

### What you think should happen instead

It would be nice if there was an optional parameter to provide a `drive_id` into which user would like to upload a file. With the same directory check behaviour that already exists but extended to `shared drives`

### How to reproduce

1. Create a directory on the shared google drive
2. Fill `LocalFilesystemToGoogleDriveOperator` constructor with the arguments.
3. Execute the function

### Anything else

I am willing to submit a PR but I would need to know more details, your thoughts, expectations of the implementation to make as little iteration on it possible.

### Are you willing to submit PR?

- [X] Yes I am willing to submit a PR!

### Code of Conduct

- [X] I agree to follow this project's [Code of Conduct](https://github.com/apache/airflow/blob/main/CODE_OF_CONDUCT.md)

or to -1.
        :param resumable: True if this is a resumable upload. False means upload
            in a single request.
        :return: File ID
        """
        service = self.get_conn()
        directory_path, _, file_name = remote_location.rpartition("/")
        if directory_path:
            parent = self._ensure_folders_exists(directory_path)
        else:
            parent = "root"
        file_metadata = {"name": file_name, "parents": [parent]}
        media = MediaFileUpload(local_location, chunksize=chunk_size, resumable=resumable)
        file = (
            service.files()
            .create(body=file_metadata, media_body=media, fields="id", supportsAllDrives=True)
            .execute(num_retries=self.num_retries)
        )
        self.log.info("File %s uploaded to gdrive://%s.", local_location, remote_location)
        return file.get("id")
    def download_file(self, file_id: str, file_handle: IO, chunk_size: int = 100 * 1024 * 1024):
        """
        Download a file from Google Drive.
        :param file_id: the id of the file
        :param file_handle: file handle used to write the content to
        :param chunk_size: File will be downloaded in chunks of this many bytes.
        """
        request = self.get_media_request(file_id=file_id)
        self.download_content_from_request(file_handle=file_handle, request=request, chunk_size=chunk_size)