gofile

Module and tool to upload files to gofile.io
git clone https://code.alwayswait.ing/gofile.git
Log | Files | Refs

commit 2cdbc167a45fdf63c4a38108f5b6b48857f9d350
parent c16efd480dc3aaceaa73c23ff3d27d680f78d524
Author: archiveanon <>
Date:   Wed,  8 Jan 2025 01:11:57 +0000

Support specifying servers in multi-file uploads

gofile also returns the servers used for a folder, so we can
extract that from an existing result and pass that in.

Diffstat:
Msrc/gofile/api.py | 11++++++++---
1 file changed, 8 insertions(+), 3 deletions(-)

diff --git a/src/gofile/api.py b/src/gofile/api.py @@ -69,6 +69,7 @@ class GofileUploadResult(msgspec.Struct): file_id: str = msgspec.field(name="id") file_name: str = msgspec.field(name="name") md5_hash: str = msgspec.field(name="md5") + servers: list[str] # a guestToken field is provided if no access token was given and no folderID was specified guest_token: Optional[str] = msgspec.field(default=None, name="guestToken") @@ -152,13 +153,17 @@ async def upload_single( async def upload_multiple( - files: Iterator[pathlib.Path], token: Optional[str] = None, folder_id: Optional[str] = None + files: Iterator[io.FileIO], + token: Optional[str] = None, + folder_id: Optional[str] = None, + server: Optional[str] = None, ) -> AsyncIterator[GofileUpload]: # returns a generator of GofileUpload instances in the same order files were given first_file, *other_files = files - upload_server_result = await get_upload_server() - server = upload_server_result.server + if not server: + upload_server_result = await get_upload_server() + server = upload_server_result.server first_upload = await upload_single(first_file, token, folder_id, server)