### 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)

#
#
#
"""Hook for Google Drive service"""
from __future__ import annotations
from typing import IO, Any, Sequence
from googleapiclient.discovery import Resource, build
from googleapiclient.http import HttpRequest, MediaFileUpload
from airflow.providers.google.common.hooks.base_google import GoogleBaseHook
class GoogleDriveHook(GoogleBaseHook):
    """
    Hook for the Google Drive APIs.
    :param api_version: API version used (for example v3).
    :param gcp_conn_id: The connection ID to use when fetching connection info.
    :param delegate_to: The account to impersonate using domain-wide delegation of authority,
        if any. For this to work, the service account making the request must have
        domain-wide delegation enabled.
    :param impersonation_chain: Optional service account to impersonate using short-term
        credentials, or chained list of accounts required to get the access_token
        of the last account in the list, which will be impersonated in the request.
        If set as a string, the account must grant the originating account
        the Service Account Token Creator IAM role.
        If set as a sequence, the identities from the list must grant
        Service Account Token Creator IAM role to the directly preceding identity, with first
        account from the list granting this role to the originating account.
    """
    _conn: Resource | None = None
    def __init__(