diff --git a/google/generativeai/client.py b/google/generativeai/client.py index 80e3c3b76..d9935e1ec 100644 --- a/google/generativeai/client.py +++ b/google/generativeai/client.py @@ -59,6 +59,7 @@ def create_file( mime_type: str | None = None, name: str | None = None, display_name: str | None = None, + resumable: bool = True, ) -> glm.File: if self._discovery_api is None: self._setup_discovery_api() @@ -69,7 +70,9 @@ def create_file( if display_name is not None: file["displayName"] = display_name - media = googleapiclient.http.MediaFileUpload(filename=path, mimetype=mime_type) + media = googleapiclient.http.MediaFileUpload( + filename=path, mimetype=mime_type, resumable=resumable + ) request = self._discovery_api.media().upload(body={"file": file}, media_body=media) result = request.execute() diff --git a/google/generativeai/files.py b/google/generativeai/files.py index ffd9e6ed8..13535c47f 100644 --- a/google/generativeai/files.py +++ b/google/generativeai/files.py @@ -35,7 +35,24 @@ def upload_file( mime_type: str | None = None, name: str | None = None, display_name: str | None = None, + resumable: bool = True, ) -> file_types.File: + """Uploads a file using a supported file service. + + Args: + path: The path to the file to be uploaded. + mime_type: The MIME type of the file. If not provided, it will be + inferred from the file extension. + name: The name of the file in the destination (e.g., 'files/sample-image'). + If not provided, a system generated ID will be created. + display_name: Optional display name of the file. + resumable: Whether to use the resumable upload protocol. By default, this is enabled. + See details at + https://googleapis.github.io/google-api-python-client/docs/epy/googleapiclient.http.MediaFileUpload-class.html#resumable + + Returns: + file_types.File: The response of the uploaded file. + """ client = get_default_file_client() path = pathlib.Path(os.fspath(path)) @@ -50,7 +67,7 @@ def upload_file( display_name = path.name response = client.create_file( - path=path, mime_type=mime_type, name=name, display_name=display_name + path=path, mime_type=mime_type, name=name, display_name=display_name, resumable=resumable ) return file_types.File(response)