Conversation
* fix(drivers): free space underflow if used larger than total space (OpenListTeam#1407) * fix(189pc/189tv): `request` panic when login failed (OpenListTeam#1428) * fix(ilanzou): wrong total capacity (OpenListTeam#1433) * feat(pikpak): support disk usage (OpenListTeam#1426) * feat(pikpak): support disk usage * fix(alias): cannot list with details * refactor: rename `NewDiskUsageFromUsedAndTotal` * fix(disk-usage): get details of storages that is not initialized * feat(offline_download): add 123 open (OpenListTeam#1427) * feat(http3|quic): add http3|quic support (OpenListTeam#1466) * feat(http3|quic): add http3|quic support * revert(ai): fix ai error * fix(shutdown): shutdown was using close * feat(http3|quic): add config if needs h3 * feat(http3|quic): add Alt-Svc to expose h3 * chore(frontend): optimize user operations (OpenListTeam#1449) * feat(drivers): add halalcloud_open driver (OpenListTeam#1430) * 新增清真云Open驱动,支持最新的轻量SDK * Change Go version in go.mod Downgrade Go version from 1.24.2 to 1.23.4 Signed-off-by: zzzhr1990 <[email protected]> * Apply suggestions from code review * Removed unnecessary comments * Downgraded the Go version to 1.23.4. * Not sure whether FileStream supports concurrent read and write operations, so currently using single-threaded upload to ensure safety. Co-authored-by: Copilot <[email protected]> Signed-off-by: zzzhr1990 <[email protected]> * feat(halalcloud_open): support disk usage * Set useSingleUpload to true for upload safety Not sure whether FileStream supports concurrent read and write operations, so currently using single-threaded upload to ensure safety. Signed-off-by: zzzhr1990 <[email protected]> * Update meta.go Change required for RefreshToken, If using a personal API approach, the RefreshToken is not required. Signed-off-by: zzzhr1990 <[email protected]> * remove debug logs * bump halalcloud SDK version * fix unnecessary params * Update drivers/halalcloud_open/driver_init.go Co-authored-by: Copilot <[email protected]> Signed-off-by: zzzhr1990 <[email protected]> * Fixed spelling errors; changed hardcoded retry parameters to constants. * remove pointer in get link function in utils.go --------- Signed-off-by: zzzhr1990 <[email protected]> Co-authored-by: Copilot <[email protected]> Co-authored-by: KirCute <[email protected]> * feat(http3|quic): Set Alt-Svc header only for HTTPS requests (OpenListTeam#1469) * feat(local): move deleted files to corresponding locations (OpenListTeam#1281) * fix(fs):fix retry task after restart (OpenListTeam#1467) * fix retry task after restart * fix: initialize SrcStorage and DstStorage in tasks to prevent nil pointer dereference * feat: implement storage load signal mechanism for improved synchronization * fix: update StoragesLoaded logic * refactor: reorganize storage loading logic and improve synchronization handling --------- Co-authored-by: j2rong4cn <[email protected]> * feat(cache): improve cache management (OpenListTeam#1339) * feat(cache): improve cache management * feat(disk-usage): add cache * feat(disk-usage): add refresh * fix(disk-usage): cache with ttl * feat(cache): implement KeyedCache and TypedCache for improved caching mechanism * fix(copy): update object retrieval to use Get instead of GetUnwrap * refactor(cache): simplify DirectoryCache structure and improve object management * fix(cache): correct cache entry initialization and key deletion logic in TypedCache * refactor(driver): remove GetObjInfo interface and simplify Link function logic https://github.com/OpenListTeam/OpenList/pull/888/files#r2430925783 * fix(link): optimize link retrieval and caching logic * refactor(cache): consolidate cache management and improve directory cache handling * fix(cache): add cache control based on storage configuration in List function * . * refactor: replace fmt.Sprintf with strconv for integer conversions * refactor(cache): enhance cache entry management with Expirable interface * fix(cache): improve link reference acquisition logic to handle expiration * refactor: replace OnlyLinkMFile with NoLinkSF in driver configurations and logic * refactor(link): enhance link caching logic with dynamic type keys based on IP and User-Agent * feat(drivers): add LinkCacheType to driver configurations for enhanced caching * refactor(cache): streamline directory object management in cache operations * refactor(cache): remove unnecessary 'dirty' field from CacheEntry structure * refactor(cache): replace 'dirty' field with bitwise flags * refactor(io): 调高SyncClosers.AcquireReference的优先级 * refactor(link): 优化链接获取逻辑,增加重 * refactor(link): 添加RequireReference字段以增强链接管理 * refactor(link): 移除MFile字段,改用RangeReader * refactor: 移除不必要的NoLinkSF字段 * refactor(cache): 修改目录缓存的脏标志定义和更新逻辑 * feat(cache): add expiration gc --------- Co-authored-by: KirCute <[email protected]> Co-authored-by: KirCute <[email protected]> Co-authored-by: j2rong4cn <[email protected]> * feat(onedrive): add ref support (OpenListTeam#1435) * feat(onedrive): add ref support * fix(onedrive): remove redundant token assignment from reference --------- Co-authored-by: j2rong4cn <[email protected]> * feat(drivers): add ProtonDrive driver (OpenListTeam#1368) * feat(drivers): add ProtonDrive driver - Implement complete ProtonDrive storage driver with end-to-end encryption support - Add authentication via username/password with credential caching and reusable login - Support all core operations: List, Link, Put, Copy, Move, Remove, Rename, MakeDir - Include encrypted file operations with PGP key management and node passphrase handling - Add temporary HTTP server for secure file downloads with range request support - Support media streaming using temp server range requests - Implement progress tracking for uploads and downloads - Support directory operations with circular move detection - Add proper error handling and panic recovery for external library integration - Support buffered upload for specific sequential and encrypted, but optimized transmission. * Update drivers/proton_drive/util.go Co-authored-by: Copilot <[email protected]> Signed-off-by: D@' 3z K!7 <[email protected]> * chore * feat(drivers): enhance ProtonDrive temp server - Implement separate listen and public port configuration for complex network deployments - Add intelligent port detection with 8080 as preferred default, fallback to auto-assignment - Support Container/NAT/VM environments through configurable external host and port mapping - Add port availability validation with graceful fallback to listen port - Enable users to specify external domain/IP for client connections (e.g., 192.168.1.5) - Follow FTP server configuration patterns for network flexibility - Maintain localhost development simplicity while supporting production deployments * feat(proton_drive): refactor directory handling and improve link retrieval * fix(proton_drive): add NoLinkURL configuration option * fix(proton_drive): update file size retrieval and enforce TwoFACode requirement * feat(proton_drive): add expiration to link response * fix(proton_drive): handle empty RootFolderID in Init method * fix(proton_drive): update credential handling to use email and reusable login * fix(proton_drive): update credential handling to use reusableCredential variable * fix(proton_drive): update DirectRename to use GetLink for source object retrieval * fix(proton_drive): refactor uploadFile to return model.Obj and handle errors correctly * fix(proton_drive): refactor DirectMove to use getLink for source retrieval and simplify destination handling * fix(proton_drive): simplify Copy method by removing temporary file creation and directly using FileStream * refactor(proton_drive): remove unused temporary server and related code * chore * fix(proton_drive): fix driver - Handle fresh login if ProtonDrive rejects AccessToken or RefreshToken - Update stored credentials * fix(proton_drive): simplify reusable login handling in Init method * fix(proton_drive): fix driver - Update stored credentials, now is failing * feat(proton_drive): improve authentication handling and remove unused variables * fix(proton_drive): fix driver - Update stored credentials, now is failing * fix(proton_drive): improve authentication handling * refactor(proton_drive): move client initialization to initClient method * feat(proton_drive): move addrs and addrKRs * feat(proton_drive): optimize upload threads - Change ConcurrentBlockUploadCount to user configured upload threads number - Comment ConcurrentFileCryptoCount, default is runtime.GOMAXPROCS(0) --------- Signed-off-by: D@' 3z K!7 <[email protected]> Co-authored-by: Copilot <[email protected]> Co-authored-by: KirCute <[email protected]> Co-authored-by: j2rong4cn <[email protected]> Co-authored-by: KirCute <[email protected]> * feat(openlist): add PassIPToUpsteam to driver (OpenListTeam#1498) * fix(share): remove share when user delete (OpenListTeam#1493) * fix(aliyundrive_open): use safe disk usage calculation (OpenListTeam#1510) * feat(command): add --config flag to set custom config path (OpenListTeam#1479) * fix(alias): nil panic in `ResolveLinkCacheMode` (OpenListTeam#1527) * fix(alias): Check the driver path during initialization * fix(alias): Don't check the driver path during initialization anymore. * feat(123): allow modification of the platform header (OpenListTeam#1542) * feat(drivers/123): Allow modification of the platform field * feat(drivers/123): Set login platfrom as web * fix(drivers/123): update platform field help value * feat(strm): strm local file (OpenListTeam#1127) * feat(strm): strm local file * feat: 代码优化 * feat: 访问被strm挂载路径时也更新 * fix: 路径最后带/判断缺失 * fix: 路径最后带/判断缺失 * refactor * refactor * fix: close seekable-stream in `generateStrm` * refactor: lazy create local file * 优化路径判断 --------- Co-authored-by: KirCute <[email protected]> * feat(thunder): allow setting space (OpenListTeam#1219) allows access to files on remote devices via Thunder's tunneling service. * feat(net): support proxy configuration via config file (OpenListTeam#1359) * support proxy * debug * debug2 * del debug * add proxy configuration with env var fallback * comments to en * refactor(env): fallback env --------- Co-authored-by: jyxjjj <[email protected]> * fix(google_driver): fix google link file display size (OpenListTeam#1335) * fix file link display size * fix performance and field * cn to en notes --------- Co-authored-by: ShenLin <[email protected]> * chore(strm): Built-in file types support modification (OpenListTeam#1483) * fix(baidu_netdisk): support resuming uploads when an error occurs (OpenListTeam#1279) support resuming uploads when an error occurs * feat(stream): enhance GetRangeReaderFromLink rate limiting (OpenListTeam#1528) * feat(stream): enhance GetRangeReaderFromLink rate limiting * refactor(stream): update GetRangeReaderFromMFile to return *model.FileRangeReader * refactor(stream): simplify context error handling in RateLimitReader, RateLimitWriter, and RateLimitFile * refactor(net): replace custom LimitedReadCloser with readers.NewLimitedReadCloser * fix(model): update Link.ContentLength JSON tag for correct serialization * docs(model): add clarification to FileRangeReader usage comment * fix(backup-restore): add shares (OpenListTeam#1500) * perf(stream): optimize CacheFullAndWriter for better memory management (OpenListTeam#1584) * perf(stream): optimize CacheFullAndWriter for better memory management * fix(stream): ensure proper seek handling in CacheFullAndWriter for improved data integrity * fix(baidu_netdisk): improve upload experience (OpenListTeam#1562) * fix(baidu_netdisk): improve upload experience * fix(typo): URL should be uppercase, apply suggestion from @Copilot Co-authored-by: Copilot <[email protected]> Signed-off-by: ShenLin <[email protected]> * fix(typo): URL should be uppercase, apply suggestion from @Copilot Co-authored-by: Copilot <[email protected]> Signed-off-by: ShenLin <[email protected]> * fix(baidu_netdisk): use "UploadAPI" as a fallback when using dynamic upload api * fix(baidu_netdisk): all uploads share the same upload url cache * fix(drivers/baidu_netdisk): defer uploadUrlMu unlock * update driver.go to main --------- Signed-off-by: ShenLin <[email protected]> Signed-off-by: jenfonro <[email protected]> Co-authored-by: ShenLin <[email protected]> Co-authored-by: Copilot <[email protected]> Co-authored-by: jenfonro <[email protected]> * feat(github_release): support Source code (zip/tar.gz) (OpenListTeam#1581) * support Github Release Source code (zip/tar.gz) * fix TarballUrl and ZipballUrl * fix show source code by allversion --------- Co-authored-by: nibazshab <[email protected]> * fix(189): disk-usage unmarshal failed when used capacity overflow (OpenListTeam#1577) * refactor(stream): simplify code (OpenListTeam#1590) * refactor(stream): simplify Close method and update SeekableStream to use RangeReader interface * refactor(stream): improve RangeRead comments for clarity * fix(strm): non-specified type generates strm (OpenListTeam#1585) * fix(strm): non-specified type generates strm * fix(strm): only insert to strmTrie if SaveStrmToLocal is enabled * fix(strm): update suffix handling in convert2strmObjs function * fix(strm): refactor generateStrm to use range reader --------- Co-authored-by: j2rong4cn <[email protected]> * feat(onedrive): support frontend direct upload (OpenListTeam#1532) * OneDrive添加直连上传 * refactor * fix: duplicate root path join --------- Co-authored-by: KirCute <[email protected]> * refactor(fs): implement immediate retry within task execution cycle (OpenListTeam#1575) * fix(baidu_netdisk): Fix Baidu Netdisk resume uploads sticking to the same upload host (OpenListTeam#1609) Fix Baidu Netdisk resume uploads sticking to the same upload host * Initial plan * Initial plan for qihoo360 driver implementation Co-authored-by: Wodlie <[email protected]> * Implement qihoo360 driver with basic file operations Co-authored-by: Wodlie <[email protected]> * Remove OpenList binary from repository Co-authored-by: Wodlie <[email protected]> * Fix security issue: remove sensitive data from debug logs Co-authored-by: Wodlie <[email protected]> * Clean up: remove binary and update gitignore Co-authored-by: Wodlie <[email protected]> * fix(terabox): wrong return code used (OpenListTeam#1547) fix(terabox): rename, delete, copy operations sometimes failed Signed-off-by: yuyamionini <[email protected]> * fix(archive/zip): user specific encoding for non-EFS zips (OpenListTeam#1599) * fix(archive/zip): user specific encoding for non-EFS zips * fix(stream): simplify head cache initialization and improve reader retrieval logic * fix: support multipart zips (.z01) * chore(deps): update github.com/KirCute/zip to v1.0.1 --------- Co-authored-by: j2rong4cn <[email protected]> Co-authored-by: Pikachu Ren <[email protected]> * feat(doubao): Add rate limiting (OpenListTeam#1618) * chore(issue templates): require logs (OpenListTeam#1626) * Fix infinite loop in authentication flow Move auth check inside method validation to prevent infinite recursion when getAuth() calls request(). Now request() only checks authentication when method is not empty, breaking the circular dependency. Co-authored-by: Wodlie <[email protected]> * feat(s3): support frontend direct upload (OpenListTeam#1631) * feat(s3): support frontend direct upload * feat(s3): support custom direct upload host * fix: apply suggestions of Copilot * fix(link): correct link cache mode bitwise comparison (OpenListTeam#1635) * fix(link): correct link cache mode bitwise comparison Signed-off-by: MadDogOwner <[email protected]> * refactor(link): use explicit flag equality for link cache mode bitmask checks Signed-off-by: MadDogOwner <[email protected]> --------- Signed-off-by: MadDogOwner <[email protected]> * feat(upload): add optional system file filtering for uploads (OpenListTeam#1634) * fix(driver/123): initialize Platform field (OpenListTeam#1644) * fix(driver/123): initialization the Platform field Signed-off-by: MoYan <[email protected]> * Fix formatting of Platform field in Pan123 Signed-off-by: MoYan <[email protected]> --------- Signed-off-by: MoYan <[email protected]> * fix(openlist_driver): ensure UA is correctly propagated (OpenListTeam#1679) * feat(fs): support manually trigger objs update hook (OpenListTeam#1620) * feat(fs): support manually trigger objs update hook * fix: support driver internal copy & move case * fix * fix: apply suggestions of Copilot * fix(misskey): folderId format validation and root directory handling (OpenListTeam#1647) fix(misskey): Fix folderId format validation and root directory handling * fix(strm): fix the name and type issue (OpenListTeam#1630) * fix(strm): fix the name and type issue * fix(strm): update version * feat(strm): custom path prefixes (OpenListTeam#1697) fix(strm): custom path prefixes Signed-off-by: ShenLin <[email protected]> Co-authored-by: ShenLin <[email protected]> * feat(baidu_netdisk): Add shard upload timeout setting (OpenListTeam#1682) add timeout * fix(local): assign non-CoW copy requests to the task module (OpenListTeam#1669) * fix(local): assign non-CoW copy requests to the task module * fix build * fix cross device * feat(fs): Add skipExisting option to move and copy, merge option to copy (OpenListTeam#1556) * fix(fs): Add skipExisting option to move and copy. * feat(fs): Add merge option to copy. * feat(fs): Code smell. * feat(fs): Code smell. * feat(archive): support non-overwrite decompress (OpenListTeam#1701) * feat(search): Add task queue for Meilisearch to prevent race conditions (OpenListTeam#1423) * Add task queue for Meilisearch to prevent race conditions - Implement TaskQueueManager for async index operations - Queue update tasks and process them in batches every 30 seconds - Check pending task status before executing new operations - Optimize batch indexing and deletion logic - Fix type assertion bug in buildSearchDocumentFromResults * fix(search): re-enqueue skipped tasks to prevent task loss When tasks are skipped due to pending dependencies, they are now re-enqueued if not already in queue. This prevents task loss while avoiding overwriting newer snapshots for the same parent. * fix(copilot-comment): Invoke Stop() & err of SliceConvert --------- Co-authored-by: ImoutoHeaven <[email protected]> Co-authored-by: jyxjjj <[email protected]> * fix(search): fix duplicated variable init (OpenListTeam#1703) * chore(archive): fix struct literal uses unkeyed fields (OpenListTeam#1704) * chore(pkg/aria2): simplify context cancellation handling in RPC calls (OpenListTeam#1705) * fix(pkg/aria2): use pointer receivers for Call methods (OpenListTeam#1706) * feat(strm): keep local download file (OpenListTeam#1707) * fix(onedrive_shareurl): Reduce temporary file errors (OpenListTeam#1686) * fix onedrive_shareurl * . * chore(strm): avoid generating empty folders (OpenListTeam#1720) chore(strm): empty folders are not generated locally * refactor: improve upload handling (OpenListTeam#1455) * fix(quark): refactor upPart to use http.NewRequest * fix(quark): improved upload handling * fix(quark_open): improved upload handling * fix: add retry context to multiple upload functions * fix: optimize hash calculation in multipart upload to avoid blocking * fix: update error handling in lifecycle functions for better clarity * fix: update upload progress calculation to improve accuracy * fix: simplify error handling in lifecycle functions for improved readability * fix: remove unnecessary mutex for part uploads to simplify code * fix(stream): simplify file handling in NewStreamSectionReader and improve error messages * fix(terabox): optimize chunk count calculation in Put method * perf(chaoxing): 表单上传文件0拷贝 * fix(cnb_releases): improve file upload progress tracking * fix(baidu_netdisk): improve upload handling * fix(upload): optimize buffer initialization for file uploads * fix(baidu_netdisk): add retry condition to skip ErrUploadIDExpired in upload loop * fix(drivers/crypt): remove hard dependency on RemotePath (OpenListTeam#1713) * fix(mediafire): enable automatic session token acquisition and fix gzip parsing (OpenListTeam#1661) * fix(mediafire): enable automatic session token acquisition and fix gzip parsing - Fix Init() method to allow automatic session token retrieval from cookie - Change SessionToken from required to optional in configuration - Add proper gzip decompression support for API responses - Improve error handling for session token acquisition failures - Update help text to clarify authentication requirements Resolves initialization failure and JSON parsing errors when session token can be automatically obtained from browser cookie. * fix(mediafire): ensure driver files end with newline * chore: gofmt drivers/mediafire/*.go * refactor(op): remove automatic Path assignment (OpenListTeam#1734) * refactor: 移除 ObjResp 中的 Id 和 Path 字段 * 移除op.List的自动设置Path Path和Id只在驱动内使用,不应由op.List设置Path * cnb_releases:将 Addition 结构体中的 RootPath 字段为 RootID 当List方法加载二级目录时,若使用的是Id,应对使用driver.RootID * doubao_share: 添加潜在bug注释 * 添加 GetRootPath 方法到多个驱动 * refactor!(userAgent): merge most userAgent into base (OpenListTeam#1722) refactor!(userAgent): merge all userAgent into base 1. change var to const 2. remove duplicated ua definetion after original Resty R 3. upgrade Chrome and OS versions * feat(fs): Support customizing the cache time for a specific path (OpenListTeam#1533) * feat(fs): Support customizing the cache time for a specific path * feat(fs): Get the cache rule for driver information. * feat(fs): Support globbing. * feat(fs): Add log. --------- Signed-off-by: ShenLin <[email protected]> Co-authored-by: ShenLin <[email protected]> * feat(driver): add AList v3 (OpenListTeam#1721) * feat(driver/openlist): compatible with AList v3 * Revert "feat(driver/openlist): compatible with AList v3" This reverts commit 90f3f80. * feat(driver): add AList v3 * Revert "feat(patch): add migration from Alist V3 driver to OpenList (OpenListTeam#919)" Signed-off-by: MadDogOwner <[email protected]> --------- Signed-off-by: MadDogOwner <[email protected]> Co-authored-by: MadDogOwner <[email protected]> * feat(utils): add support for ignoring '@eadir' system files (OpenListTeam#1779) * fix(task): tasks keep being cancelled (OpenListTeam#1745) * fix_cancel * update(go.mod): update tache version * tache v0.2.2 --------- Co-authored-by: j2rong4cn <[email protected]> * feat(model): add object mask support and enhance cache/task handling (OpenListTeam#1743) * fix(ilanzou): parse vip size (OpenListTeam#1792) * fix(halalcloud_open): halal-cloud upload issues (OpenListTeam#1800) fix halal-cloud upload issues * refactor(bootstrap): move booting logic to bootstrap package (OpenListTeam#1773) * refactor(bootstrap): move booting to bootstrap package * chore(log): reduce level of some callings of `utils.Log.Fatal` * fix(s3): no shutdown after SIGTERM received * fix: add handle hook * fix(openlist): disable status check for openlist driver (OpenListTeam#1757) * fix(openlist): disable status check to avoid network stability issues * fix(alist_v3): disable status check to avoid network stability issues Signed-off-by: MadDogOwner <[email protected]> --------- Signed-off-by: MadDogOwner <[email protected]> * feat(ldap): support webdav, ftp and sftp login (OpenListTeam#1746) * feat(ldap): support webdav, ftp and sftp login * fix: apply suggestions of Copilot * feat(ldap) support ftp, sftp and webdav auto-register * feat(drivers/139): user authentication and file batch operations (OpenListTeam#1534) * feat(139): Enhance 139 driver with password login and root path handling - Added support for password-based login in the 139 driver. - Introduced RootPath field to store the root directory path. - Updated Init method to handle family and group types more effectively. - Implemented new methods for handling file operations in family and group contexts. - Enhanced error handling and logging for better debugging. - Added new request and response structures for batch operations and document modifications. - Improved encryption and decryption methods for secure communication. * Update drivers/139/util.go Co-authored-by: Copilot <[email protected]> Signed-off-by: UcnacDx2 <[email protected]> * Update drivers/139/util.go Co-authored-by: Copilot <[email protected]> Signed-off-by: UcnacDx2 <[email protected]> * Update drivers/139/util.go Co-authored-by: Copilot <[email protected]> Signed-off-by: UcnacDx2 <[email protected]> * Update drivers/139/util.go Co-authored-by: Copilot <[email protected]> Signed-off-by: UcnacDx2 <[email protected]> * Update drivers/139/util.go Co-authored-by: Copilot <[email protected]> Signed-off-by: UcnacDx2 <[email protected]> --------- Signed-off-by: UcnacDx2 <[email protected]> Co-authored-by: Copilot <[email protected]> * fix(139): disk-usage unmarshal failed when used capacity overflow (OpenListTeam#1718) Co-authored-by: Pikachu Ren <[email protected]> * feat(driver): add personal / business wps drive support (OpenListTeam#1802) * feat(driver): add wps drive support * feat(driver): add wps drive support * fix(wps): update personal mode string to English Signed-off-by: MadDogOwner <[email protected]> * fix(wps): remove trailing slash from drive origin URL Signed-off-by: MadDogOwner <[email protected]> * fix(wps): correct order of options in mode selection Signed-off-by: MadDogOwner <[email protected]> * fix(wps): enable local sort and upload overwrite Signed-off-by: MadDogOwner <[email protected]> * fix(wps): resolve put bugs, fix file op problems and optimize list logic - Fix uploading bugs. Support all uploading methods based on 8825.85d3c864.js - Fix issues in delete/copy/move while opearting big folders. - Use cache to optimize performance of list, especially in a deep path. --------- Signed-off-by: MadDogOwner <[email protected]> Co-authored-by: MadDogOwner <[email protected]> * feat(cloudreve_v4): add ks3 support (OpenListTeam#1828) Signed-off-by: MadDogOwner <[email protected]> * fix(strm): support generate strm with sign (OpenListTeam#1832) * feat(115_open): support custom pagesize (OpenListTeam#1822) * docs: add VPS.Town as sponsor to all README (OpenListTeam#1842) Co-authored-by: XZB-1248 <[email protected]> * fix(s3): incorrect copy key with plus sign (OpenListTeam#1820) * docs: update README for zh-CN (OpenListTeam#1844) * fix(weiyun): update sdk and support getDetails (OpenListTeam#1845) * feat(strm): add save local mode (OpenListTeam#1814) * feat(strm): add KeepSameNameOnly logic * chore(strm): skip update strm file when keepLocalDownloadFile * feat(strm): add save local mode * docs(readme): add demo site (OpenListTeam#1850) Last Sync: 2025-12-22 12:39 * refactor(bootstrap): fix OpenList-Mobile compile failed (OpenListTeam#1857) * feat(alias): support load balance (OpenListTeam#1767) * feat(alias): support load balance * feat(alias): support storage match for load balance * feat(patch): add alias addition upgrade patch * fix bugs * fix(op/balance): optimize compatibility * chore: change default read conflict policy * feat(alias): refactor Alias initialization and enhance path handling * feat(alias): enhance object masking and add support for operation restrictions * feat(alias): enhance object masking * feat(fs): add permission checks * improve parsing * update object masks * feat(fs): enhance virtual file handling * feat(storage): enhance virtual file retrieval and path handling * refactor(alias): rename path handling functions for clarity and consistency * fix(alias): update path handling in Other method to use balanced path * fix bug * feat(alias): add file size validation * feat(alias): add hash consistency check * 移除哈希合并, * fix(alias): wrong behavior for all_strict/deterministic_or_all * Revert "fix(alias): wrong behavior for all_strict/deterministic_or_all" This reverts commit f001f2d. * fix(alias): wrong behavior for all_strict/deterministic_or_all * feat(alias): support part-based read load balance * fix(alias): list panic when leak conflict path * fix(alias): remove Other load balance * fix(alias): 修复 Link 方法中 resultLink 的返回类型和内容复制问题 * fix(alias): 更好的下载并发? * chore(alias): all tips * fix(alias): moving paths mismatch --------- Co-authored-by: j2rong4cn <[email protected]> Co-authored-by: ShenLin <[email protected]> * fix(s3): use current time as default modified time (OpenListTeam#1860) * fix(driver): fix file copy failure to 123pan due to incorrect etag (OpenListTeam#1874) * ci(lang): sync only new fields (OpenListTeam#1881) * fix(123_open): infinite recursive call (OpenListTeam#1854) fix(123_open): token refresh logic Fix token handling logic to avoid deadlock. Token method took reference of Alist's implementation. * feat(qihoo360): fix bugs made by copliot * fix(doubao_share): use new download info (OpenListTeam#1890) fix(doubao_share): update file URL retrieval to use new download info structure Signed-off-by: MadDogOwner <[email protected]> * feat(qihoo360): implement file upload functionality and enhance request handling * fix(qihoo360): update user-agent * feat(qihoo360): add User-Agent header for Sync.getVerifiedDownLoadUrl request * feat(drivers/mega): support getting disk usage (OpenListTeam#1903) * feat(drivers/mega): support getting disk usage * fix * feat(qihoo360): implement GetDetails and user detail retrieval functions * feat(drivers/mega): support permanently deleting files (OpenListTeam#1913) * feat(123pan): add offline download (OpenListTeam#1911) * feat(123网盘): 添加123网盘离线下载功能 - 新增123网盘离线下载实现 - 添加相关API接口和常量配置 - 在路由和工具集中集成123网盘支持 * refactor(offline_download): 重构123网盘离线下载状态处理和类型定义 - 将离线下载相关类型定义从util.go移至types.go - 更新状态获取api * 移除了备选方案(/offline_download/task/status) * feat(qihoo360): enhance GetDetails function and update UserDetailResp structure * chore(strm): remove redundant param (OpenListTeam#1929) * feat(drivers): support getting disk usage of some drivers (OpenListTeam#1905) * feat(drivers): support getting disk usage of some drivers * feat(drivers/degoo): implement GetDetails * fix(fs/storage-details): fill used space rather than free space * fix mega * fix bsize type * fix(cloudreve): Manually set path to avoid empty path (OpenListTeam#1933) * fix(drivers/alist_v3): failed to unmarshal MeResp (OpenListTeam#1931) * feat(drivers/webdav): add support for 302 redirects (OpenListTeam#1952) * Remove the `OnlyProxy` restriction and obtain the redirected link to support 302 * Add `driver.Config` `PreferProxy` to recommend user to enable the proxy by default --------- Signed-off-by: MadDogOwner <[email protected]> * fix(fs): panic when failed to get storage details (OpenListTeam#1964) * chore(.github): update issue templates [no ci] (OpenListTeam#1976) chore(.github): update issue templates * fix(drivers/ftp): failed to get objs (OpenListTeam#1948) fix(drivers/ftp): failed get objs * feat(drivers/cloudreve_v4): implement Getter interface (OpenListTeam#1937) feat(cloudreve_v4): implement Getter interface Signed-off-by: MadDogOwner <[email protected]> * fix(drivers/github): failed to get objs (OpenListTeam#1915) fix(drivers/github): failed get objs * fix(drivers/strm): delete extra local directories in sync mode (OpenListTeam#1980) * fix(ci): change unchecked regex (OpenListTeam#1993) fix(ci/issue): change unchecked regex Signed-off-by: KirCute <[email protected]> * feat(drivers): add autoindex driver (OpenListTeam#1978) * feat(drivers): add autoindex driver * fix * add NoUpload Signed-off-by: MadDogOwner <[email protected]> * add TestParseSize Signed-off-by: MadDogOwner <[email protected]> * go mod tidy Signed-off-by: MadDogOwner <[email protected]> * use base.RestyClient Signed-off-by: MadDogOwner <[email protected]> * fix: support evaluate size and modified time * fix apache * perf * feat: support ignore size and modified time * rename driver --------- Signed-off-by: MadDogOwner <[email protected]> Co-authored-by: MadDogOwner <[email protected]> * fix(fs): handle non-existent destination directory in file transfer (OpenListTeam#1898) * fix(FileTransferTask): skip copying if destination directory does not exist * pass only object not found error --------- Co-authored-by: cyk <[email protected]> Co-authored-by: KirCute <[email protected]> * feat(drivers/cloudreve): implement GetDetails (OpenListTeam#1960) * fix(driver/quark_uc): Fix display of non-compliant filenames (OpenListTeam#2000) * fix(webdav/move): fix source file still exist after moving file by webdav (OpenListTeam#1979) * perf(baidu_netdisk): reduce the number of file listing requests (OpenListTeam#2016) * 本优化减少了百度网盘驱动下文件列表的请求次数,能加快文件浏览速度。此前只要文件夹下有至少一个文件,都会至少发出2次列表请求。 Signed-off-by: hcrgm <[email protected]> * fix(drivers/seafile): object not found when RootFolderPath != "/" (OpenListTeam#2010) * fix(driver/seafile): object not found when RootFolderPath != "/" * refactor(seafile): restructure Seafile driver for improved library handling and error management * add IsDir method to LibraryInfo type * improve initialization * add repoID to RepoItemResp and update List method to set repoID --------- Co-authored-by: Khoray <[email protected]> Co-authored-by: j2rong4cn <[email protected]> * fix(drivers/alias): default sort & substitute link (OpenListTeam#1917) * fix(drivers/alias): default sort & substitute link * fix * fix * fix(drivers/cloudreve_v4): add IsFolder attribute to Getter response (OpenListTeam#2035) * fix(drivers/cloudreve_v4): add IsFolder attribute to Getter response Signed-off-by: MadDogOwner <[email protected]> * refactor(drivers/cloudreve_v4): implement File.fileToObject method Signed-off-by: MadDogOwner <[email protected]> * fix(drivers/cloudreve_v4): implement 404 not found for getter Signed-off-by: MadDogOwner <[email protected]> --------- Signed-off-by: MadDogOwner <[email protected]> * fix(drivers/quark): apply html escaping in quark (OpenListTeam#2046) * fix(drivers/quark): apply html escaping in quark * fix(api/remove): add validation for empty items in delete file list (OpenListTeam#1617) * fix(FsRemove): add validation for empty items in delete file list If Req.Names contains an empty string item, the whole directory will be removed. As a result we need add a simple guard to prevent such cases. Signed-off-by: huyuantao <[email protected]> * fix(FsRemove): enhance validation to prevent unintended directory deletion 1. Use `utils.FixAndCleanPath` to correctly identify and block invalid names. 2. Change error handling from `return` to `continue`. Signed-off-by: huyuantao <[email protected]> --------- Signed-off-by: huyuantao <[email protected]> Co-authored-by: Pikachu Ren <[email protected]> * Merge commit from fork Co-authored-by: KirCute <[email protected]> * Merge commit from fork Co-authored-by: KirCute <[email protected]> * fix(drivers/teldrive): enhance file listing and upload functionality with pagination and random chunk naming (OpenListTeam#2034) * fix(drivers/teldrive): enhance file listing and upload functionality with pagination and random chunk naming * fix(drivers/teldrive): optimize file listing by removing unnecessary mutex and restructuring data handling * Update drivers/teldrive/meta.go Co-authored-by: Copilot <[email protected]> Signed-off-by: Chaloemchai <[email protected]> --------- Signed-off-by: Chaloemchai <[email protected]> Co-authored-by: Copilot <[email protected]> * fix(115_share): adjust 115 share driver for official API update (OpenListTeam#2068) * fix(115_share): add user agent support and update driver dependency * fix(115): fix download error * feat: add thumbnail support for 115 driver and 115 share - Add Thumb() method to FileObj in 115 driver to return thumbnail URL - Add ThumbURL field to FileObj struct in 115 share utility - Update 115driver dependency from v1.2.2 to v1.2.3 to support thumbnail functionality - Implement Thumb() method for 115 share FileObj to return thumbnail URL * chore(ci): add breaking change guideline to PR title check (OpenListTeam#2087) * feat(ci): add PR title validation for breaking changes Updated regex to allow '!' for breaking changes in PR titles. Signed-off-by: MadDogOwner <[email protected]> * chore(pr): Update PR template Add bilingual instructions for PR title formatting. Signed-off-by: MadDogOwner <[email protected]> --------- Signed-off-by: MadDogOwner <[email protected]> * feat(drivers/123open): support sha1 reuse api (OpenListTeam#2089) * feat(drivers/123open): support sha1 reuse api * fix(drivers/123open): fix typos * fix(deps): update go4.org digest to a507140 (OpenListTeam#2095) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * fix(drivers/quark_uc_tv) : Update error code judgment (OpenListTeam#2080) * fix error code * add ErrorInfo check * chore(typo): fix typo in UpdateFileReq field name (OpenListTeam#2133) Fix typo in UpdateFileReq field name ref: OpenListTeam/115-sdk-go#3 Signed-off-by: LXY <[email protected]> * fix(driver/wps): fetch all files via multiple API invocations (OpenListTeam#2139) fix(driver/wps): wps list all files in one request * feat(security): add SECURITY.md (OpenListTeam#2147) [skip ci] Add SECURITY.md Signed-off-by: MadDogOwner <[email protected]> * chore(handles/auth): improve error response (OpenListTeam#2148) * chore(handles/auth): improve error response Signed-off-by: MadDogOwner <[email protected]> * Apply suggestion from @xrgzs Signed-off-by: MadDogOwner <[email protected]> --------- Signed-off-by: MadDogOwner <[email protected]> * feat(drivers/thunder*): implement GetDetails (OpenListTeam#2113) Signed-off-by: MadDogOwner <[email protected]> * Fix critical auth bug: treat access_token_expire as absolute timestamp The API returns access_token_expire as an absolute Unix timestamp, not a duration. The old code was adding it to current time, causing tokens to "expire" in year 2082. This meant tokens appeared valid even after actual expiration (1 hour), causing all API calls to fail after the program ran for some time. Also added retry limit protection to prevent infinite recursion in error handling. Co-authored-by: Wodlie <[email protected]> --------- Signed-off-by: zzzhr1990 <[email protected]> Signed-off-by: D@' 3z K!7 <[email protected]> Signed-off-by: ShenLin <[email protected]> Signed-off-by: jenfonro <[email protected]> Signed-off-by: yuyamionini <[email protected]> Signed-off-by: MadDogOwner <[email protected]> Signed-off-by: MoYan <[email protected]> Signed-off-by: UcnacDx2 <[email protected]> Signed-off-by: Wodlie <[email protected]> Signed-off-by: KirCute <[email protected]> Signed-off-by: hcrgm <[email protected]> Signed-off-by: huyuantao <[email protected]> Signed-off-by: Chaloemchai <[email protected]> Signed-off-by: LXY <[email protected]> Co-authored-by: NewbieOrange <[email protected]> Co-authored-by: KirCute <[email protected]> Co-authored-by: ShenLin <[email protected]> Co-authored-by: zzzhr1990 <[email protected]> Co-authored-by: Copilot <[email protected]> Co-authored-by: Tursom K. Ulefits <[email protected]> Co-authored-by: jenfonro <[email protected]> Co-authored-by: j2rong4cn <[email protected]> Co-authored-by: ILoveScratch <[email protected]> Co-authored-by: KirCute <[email protected]> Co-authored-by: jerrita <[email protected]> Co-authored-by: D@' 3z K!7 <[email protected]> Co-authored-by: MadDogOwner <[email protected]> Co-authored-by: walloo <[email protected]> Co-authored-by: MoYan <[email protected]> Co-authored-by: Seven <[email protected]> Co-authored-by: ex-hentai <[email protected]> Co-authored-by: j2rong4cn <[email protected]> Co-authored-by: hcrgm <[email protected]> Co-authored-by: nibazshab <[email protected]> Co-authored-by: ASLant <[email protected]> Co-authored-by: copilot-swe-agent[bot] <[email protected]> Co-authored-by: Wodlie <[email protected]> Co-authored-by: yuyamionini <[email protected]> Co-authored-by: Pikachu Ren <[email protected]> Co-authored-by: VXTLS <[email protected]> Co-authored-by: ImoutoHeaven <[email protected]> Co-authored-by: ImoutoHeaven <[email protected]> Co-authored-by: UcnacDx2 <[email protected]> Co-authored-by: wongz <[email protected]> Co-authored-by: Mako (XSpy) <[email protected]> Co-authored-by: hshpy <[email protected]> Co-authored-by: XZB-1248 <[email protected]> Co-authored-by: XZB-1248 <[email protected]> Co-authored-by: TwoOnefour <[email protected]> Co-authored-by: foxxorcat <[email protected]> Co-authored-by: Seven <[email protected]> Co-authored-by: 绎泽 <[email protected]> Co-authored-by: 我怎么就不是一只猫呢? <[email protected]> Co-authored-by: Tron <[email protected]> Co-authored-by: Edward <[email protected]> Co-authored-by: mcxiedidi <[email protected]> Co-authored-by: Ljcbaby <[email protected]> Co-authored-by: cyk <[email protected]> Co-authored-by: Cp0204 <[email protected]> Co-authored-by: mkitsdts <[email protected]> Co-authored-by: Rui Huang <[email protected]> Co-authored-by: Khoray <[email protected]> Co-authored-by: Hu Yuantao <[email protected]> Co-authored-by: Chaloemchai <[email protected]> Co-authored-by: Shelton Zhu <[email protected]> Co-authored-by: gdm257 <[email protected]> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: LXY <[email protected]>
Signed-off-by: Wodlie <[email protected]>
Wodlie
added a commit
that referenced
this pull request
Feb 28, 2026
* chore: 删除不再使用的工作流文件并更新相关配置 * Revert Signed-off-by: Wodlie <[email protected]> * chore:fixed ci build * chore: clean up workflow files by removing unused release configurations * refactor(workflows): clean up Docker release workflows and remove obsolete files * revert Signed-off-by: Wodlie <[email protected]> * revert Signed-off-by: Wodlie <[email protected]> * feat(ci): enhance Docker release workflow with manual tagging options and lite builds * Delete .github/workflows/test_docker.yml Signed-off-by: Wodlie <[email protected]> * Delete .github/workflows/sync_repo.yml Signed-off-by: Wodlie <[email protected]> * Delete .github/workflows/sync_repo.yml Signed-off-by: Wodlie <[email protected]> * Delete .github/workflows/test_docker.yml Signed-off-by: Wodlie <[email protected]> * feat(onedrive): add TenantID field and update token refresh logic * feat(qihoo360)!: add qihoo360 driver (#14) * fix(drivers): free space underflow if used larger than total space (OpenListTeam#1407) * fix(189pc/189tv): `request` panic when login failed (OpenListTeam#1428) * fix(ilanzou): wrong total capacity (OpenListTeam#1433) * feat(pikpak): support disk usage (OpenListTeam#1426) * feat(pikpak): support disk usage * fix(alias): cannot list with details * refactor: rename `NewDiskUsageFromUsedAndTotal` * fix(disk-usage): get details of storages that is not initialized * feat(offline_download): add 123 open (OpenListTeam#1427) * feat(http3|quic): add http3|quic support (OpenListTeam#1466) * feat(http3|quic): add http3|quic support * revert(ai): fix ai error * fix(shutdown): shutdown was using close * feat(http3|quic): add config if needs h3 * feat(http3|quic): add Alt-Svc to expose h3 * chore(frontend): optimize user operations (OpenListTeam#1449) * feat(drivers): add halalcloud_open driver (OpenListTeam#1430) * 新增清真云Open驱动,支持最新的轻量SDK * Change Go version in go.mod Downgrade Go version from 1.24.2 to 1.23.4 * Apply suggestions from code review * Removed unnecessary comments * Downgraded the Go version to 1.23.4. * Not sure whether FileStream supports concurrent read and write operations, so currently using single-threaded upload to ensure safety. * feat(halalcloud_open): support disk usage * Set useSingleUpload to true for upload safety Not sure whether FileStream supports concurrent read and write operations, so currently using single-threaded upload to ensure safety. * Update meta.go Change required for RefreshToken, If using a personal API approach, the RefreshToken is not required. * remove debug logs * bump halalcloud SDK version * fix unnecessary params * Update drivers/halalcloud_open/driver_init.go * Fixed spelling errors; changed hardcoded retry parameters to constants. * remove pointer in get link function in utils.go --------- * feat(http3|quic): Set Alt-Svc header only for HTTPS requests (OpenListTeam#1469) * feat(local): move deleted files to corresponding locations (OpenListTeam#1281) * fix(fs):fix retry task after restart (OpenListTeam#1467) * fix retry task after restart * fix: initialize SrcStorage and DstStorage in tasks to prevent nil pointer dereference * feat: implement storage load signal mechanism for improved synchronization * fix: update StoragesLoaded logic * refactor: reorganize storage loading logic and improve synchronization handling --------- * feat(cache): improve cache management (OpenListTeam#1339) * feat(cache): improve cache management * feat(disk-usage): add cache * feat(disk-usage): add refresh * fix(disk-usage): cache with ttl * feat(cache): implement KeyedCache and TypedCache for improved caching mechanism * fix(copy): update object retrieval to use Get instead of GetUnwrap * refactor(cache): simplify DirectoryCache structure and improve object management * fix(cache): correct cache entry initialization and key deletion logic in TypedCache * refactor(driver): remove GetObjInfo interface and simplify Link function logic https://github.com/OpenListTeam/OpenList/pull/888/files#r2430925783 * fix(link): optimize link retrieval and caching logic * refactor(cache): consolidate cache management and improve directory cache handling * fix(cache): add cache control based on storage configuration in List function * . * refactor: replace fmt.Sprintf with strconv for integer conversions * refactor(cache): enhance cache entry management with Expirable interface * fix(cache): improve link reference acquisition logic to handle expiration * refactor: replace OnlyLinkMFile with NoLinkSF in driver configurations and logic * refactor(link): enhance link caching logic with dynamic type keys based on IP and User-Agent * feat(drivers): add LinkCacheType to driver configurations for enhanced caching * refactor(cache): streamline directory object management in cache operations * refactor(cache): remove unnecessary 'dirty' field from CacheEntry structure * refactor(cache): replace 'dirty' field with bitwise flags * refactor(io): 调高SyncClosers.AcquireReference的优先级 * refactor(link): 优化链接获取逻辑,增加重 * refactor(link): 添加RequireReference字段以增强链接管理 * refactor(link): 移除MFile字段,改用RangeReader * refactor: 移除不必要的NoLinkSF字段 * refactor(cache): 修改目录缓存的脏标志定义和更新逻辑 * feat(cache): add expiration gc --------- * feat(onedrive): add ref support (OpenListTeam#1435) * feat(onedrive): add ref support * fix(onedrive): remove redundant token assignment from reference --------- * feat(drivers): add ProtonDrive driver (OpenListTeam#1368) * feat(drivers): add ProtonDrive driver - Implement complete ProtonDrive storage driver with end-to-end encryption support - Add authentication via username/password with credential caching and reusable login - Support all core operations: List, Link, Put, Copy, Move, Remove, Rename, MakeDir - Include encrypted file operations with PGP key management and node passphrase handling - Add temporary HTTP server for secure file downloads with range request support - Support media streaming using temp server range requests - Implement progress tracking for uploads and downloads - Support directory operations with circular move detection - Add proper error handling and panic recovery for external library integration - Support buffered upload for specific sequential and encrypted, but optimized transmission. * Update drivers/proton_drive/util.go * chore * feat(drivers): enhance ProtonDrive temp server - Implement separate listen and public port configuration for complex network deployments - Add intelligent port detection with 8080 as preferred default, fallback to auto-assignment - Support Container/NAT/VM environments through configurable external host and port mapping - Add port availability validation with graceful fallback to listen port - Enable users to specify external domain/IP for client connections (e.g., 192.168.1.5) - Follow FTP server configuration patterns for network flexibility - Maintain localhost development simplicity while supporting production deployments * feat(proton_drive): refactor directory handling and improve link retrieval * fix(proton_drive): add NoLinkURL configuration option * fix(proton_drive): update file size retrieval and enforce TwoFACode requirement * feat(proton_drive): add expiration to link response * fix(proton_drive): handle empty RootFolderID in Init method * fix(proton_drive): update credential handling to use email and reusable login * fix(proton_drive): update credential handling to use reusableCredential variable * fix(proton_drive): update DirectRename to use GetLink for source object retrieval * fix(proton_drive): refactor uploadFile to return model.Obj and handle errors correctly * fix(proton_drive): refactor DirectMove to use getLink for source retrieval and simplify destination handling * fix(proton_drive): simplify Copy method by removing temporary file creation and directly using FileStream * refactor(proton_drive): remove unused temporary server and related code * chore * fix(proton_drive): fix driver - Handle fresh login if ProtonDrive rejects AccessToken or RefreshToken - Update stored credentials * fix(proton_drive): simplify reusable login handling in Init method * fix(proton_drive): fix driver - Update stored credentials, now is failing * feat(proton_drive): improve authentication handling and remove unused variables * fix(proton_drive): fix driver - Update stored credentials, now is failing * fix(proton_drive): improve authentication handling * refactor(proton_drive): move client initialization to initClient method * feat(proton_drive): move addrs and addrKRs * feat(proton_drive): optimize upload threads - Change ConcurrentBlockUploadCount to user configured upload threads number - Comment ConcurrentFileCryptoCount, default is runtime.GOMAXPROCS(0) --------- * feat(openlist): add PassIPToUpsteam to driver (OpenListTeam#1498) * fix(share): remove share when user delete (OpenListTeam#1493) * fix(aliyundrive_open): use safe disk usage calculation (OpenListTeam#1510) * feat(command): add --config flag to set custom config path (OpenListTeam#1479) * fix(alias): nil panic in `ResolveLinkCacheMode` (OpenListTeam#1527) * fix(alias): Check the driver path during initialization * fix(alias): Don't check the driver path during initialization anymore. * feat(123): allow modification of the platform header (OpenListTeam#1542) * feat(drivers/123): Allow modification of the platform field * feat(drivers/123): Set login platfrom as web * fix(drivers/123): update platform field help value * feat(strm): strm local file (OpenListTeam#1127) * feat(strm): strm local file * feat: 代码优化 * feat: 访问被strm挂载路径时也更新 * fix: 路径最后带/判断缺失 * fix: 路径最后带/判断缺失 * refactor * refactor * fix: close seekable-stream in `generateStrm` * refactor: lazy create local file * 优化路径判断 --------- * feat(thunder): allow setting space (OpenListTeam#1219) allows access to files on remote devices via Thunder's tunneling service. * feat(net): support proxy configuration via config file (OpenListTeam#1359) * support proxy * debug * debug2 * del debug * add proxy configuration with env var fallback * comments to en * refactor(env): fallback env --------- * fix(google_driver): fix google link file display size (OpenListTeam#1335) * fix file link display size * fix performance and field * cn to en notes --------- * chore(strm): Built-in file types support modification (OpenListTeam#1483) * fix(baidu_netdisk): support resuming uploads when an error occurs (OpenListTeam#1279) support resuming uploads when an error occurs * feat(stream): enhance GetRangeReaderFromLink rate limiting (OpenListTeam#1528) * feat(stream): enhance GetRangeReaderFromLink rate limiting * refactor(stream): update GetRangeReaderFromMFile to return *model.FileRangeReader * refactor(stream): simplify context error handling in RateLimitReader, RateLimitWriter, and RateLimitFile * refactor(net): replace custom LimitedReadCloser with readers.NewLimitedReadCloser * fix(model): update Link.ContentLength JSON tag for correct serialization * docs(model): add clarification to FileRangeReader usage comment * fix(backup-restore): add shares (OpenListTeam#1500) * perf(stream): optimize CacheFullAndWriter for better memory management (OpenListTeam#1584) * perf(stream): optimize CacheFullAndWriter for better memory management * fix(stream): ensure proper seek handling in CacheFullAndWriter for improved data integrity * fix(baidu_netdisk): improve upload experience (OpenListTeam#1562) * fix(baidu_netdisk): improve upload experience * fix(typo): URL should be uppercase, apply suggestion from @Copilot * fix(typo): URL should be uppercase, apply suggestion from @Copilot * fix(baidu_netdisk): use "UploadAPI" as a fallback when using dynamic upload api * fix(baidu_netdisk): all uploads share the same upload url cache * fix(drivers/baidu_netdisk): defer uploadUrlMu unlock * update driver.go to main --------- * feat(github_release): support Source code (zip/tar.gz) (OpenListTeam#1581) * support Github Release Source code (zip/tar.gz) * fix TarballUrl and ZipballUrl * fix show source code by allversion --------- * fix(189): disk-usage unmarshal failed when used capacity overflow (OpenListTeam#1577) * refactor(stream): simplify code (OpenListTeam#1590) * refactor(stream): simplify Close method and update SeekableStream to use RangeReader interface * refactor(stream): improve RangeRead comments for clarity * fix(strm): non-specified type generates strm (OpenListTeam#1585) * fix(strm): non-specified type generates strm * fix(strm): only insert to strmTrie if SaveStrmToLocal is enabled * fix(strm): update suffix handling in convert2strmObjs function * fix(strm): refactor generateStrm to use range reader --------- * feat(onedrive): support frontend direct upload (OpenListTeam#1532) * OneDrive添加直连上传 * refactor * fix: duplicate root path join --------- * refactor(fs): implement immediate retry within task execution cycle (OpenListTeam#1575) * fix(baidu_netdisk): Fix Baidu Netdisk resume uploads sticking to the same upload host (OpenListTeam#1609) Fix Baidu Netdisk resume uploads sticking to the same upload host * Initial plan * Initial plan for qihoo360 driver implementation * Implement qihoo360 driver with basic file operations * Remove OpenList binary from repository * Fix security issue: remove sensitive data from debug logs * Clean up: remove binary and update gitignore * fix(terabox): wrong return code used (OpenListTeam#1547) fix(terabox): rename, delete, copy operations sometimes failed * fix(archive/zip): user specific encoding for non-EFS zips (OpenListTeam#1599) * fix(archive/zip): user specific encoding for non-EFS zips * fix(stream): simplify head cache initialization and improve reader retrieval logic * fix: support multipart zips (.z01) * chore(deps): update github.com/KirCute/zip to v1.0.1 --------- * feat(doubao): Add rate limiting (OpenListTeam#1618) * chore(issue templates): require logs (OpenListTeam#1626) * Fix infinite loop in authentication flow Move auth check inside method validation to prevent infinite recursion when getAuth() calls request(). Now request() only checks authentication when method is not empty, breaking the circular dependency. * feat(s3): support frontend direct upload (OpenListTeam#1631) * feat(s3): support frontend direct upload * feat(s3): support custom direct upload host * fix: apply suggestions of Copilot * fix(link): correct link cache mode bitwise comparison (OpenListTeam#1635) * fix(link): correct link cache mode bitwise comparison * refactor(link): use explicit flag equality for link cache mode bitmask checks --------- * feat(upload): add optional system file filtering for uploads (OpenListTeam#1634) * fix(driver/123): initialize Platform field (OpenListTeam#1644) * fix(driver/123): initialization the Platform field * Fix formatting of Platform field in Pan123 --------- * fix(openlist_driver): ensure UA is correctly propagated (OpenListTeam#1679) * feat(fs): support manually trigger objs update hook (OpenListTeam#1620) * feat(fs): support manually trigger objs update hook * fix: support driver internal copy & move case * fix * fix: apply suggestions of Copilot * fix(misskey): folderId format validation and root directory handling (OpenListTeam#1647) fix(misskey): Fix folderId format validation and root directory handling * fix(strm): fix the name and type issue (OpenListTeam#1630) * fix(strm): fix the name and type issue * fix(strm): update version * feat(strm): custom path prefixes (OpenListTeam#1697) fix(strm): custom path prefixes * feat(baidu_netdisk): Add shard upload timeout setting (OpenListTeam#1682) add timeout * fix(local): assign non-CoW copy requests to the task module (OpenListTeam#1669) * fix(local): assign non-CoW copy requests to the task module * fix build * fix cross device * feat(fs): Add skipExisting option to move and copy, merge option to copy (OpenListTeam#1556) * fix(fs): Add skipExisting option to move and copy. * feat(fs): Add merge option to copy. * feat(fs): Code smell. * feat(fs): Code smell. * feat(archive): support non-overwrite decompress (OpenListTeam#1701) * feat(search): Add task queue for Meilisearch to prevent race conditions (OpenListTeam#1423) * Add task queue for Meilisearch to prevent race conditions - Implement TaskQueueManager for async index operations - Queue update tasks and process them in batches every 30 seconds - Check pending task status before executing new operations - Optimize batch indexing and deletion logic - Fix type assertion bug in buildSearchDocumentFromResults * fix(search): re-enqueue skipped tasks to prevent task loss When tasks are skipped due to pending dependencies, they are now re-enqueued if not already in queue. This prevents task loss while avoiding overwriting newer snapshots for the same parent. * fix(copilot-comment): Invoke Stop() & err of SliceConvert --------- * fix(search): fix duplicated variable init (OpenListTeam#1703) * chore(archive): fix struct literal uses unkeyed fields (OpenListTeam#1704) * chore(pkg/aria2): simplify context cancellation handling in RPC calls (OpenListTeam#1705) * fix(pkg/aria2): use pointer receivers for Call methods (OpenListTeam#1706) * feat(strm): keep local download file (OpenListTeam#1707) * fix(onedrive_shareurl): Reduce temporary file errors (OpenListTeam#1686) * fix onedrive_shareurl * . * chore(strm): avoid generating empty folders (OpenListTeam#1720) chore(strm): empty folders are not generated locally * refactor: improve upload handling (OpenListTeam#1455) * fix(quark): refactor upPart to use http.NewRequest * fix(quark): improved upload handling * fix(quark_open): improved upload handling * fix: add retry context to multiple upload functions * fix: optimize hash calculation in multipart upload to avoid blocking * fix: update error handling in lifecycle functions for better clarity * fix: update upload progress calculation to improve accuracy * fix: simplify error handling in lifecycle functions for improved readability * fix: remove unnecessary mutex for part uploads to simplify code * fix(stream): simplify file handling in NewStreamSectionReader and improve error messages * fix(terabox): optimize chunk count calculation in Put method * perf(chaoxing): 表单上传文件0拷贝 * fix(cnb_releases): improve file upload progress tracking * fix(baidu_netdisk): improve upload handling * fix(upload): optimize buffer initialization for file uploads * fix(baidu_netdisk): add retry condition to skip ErrUploadIDExpired in upload loop * fix(drivers/crypt): remove hard dependency on RemotePath (OpenListTeam#1713) * fix(mediafire): enable automatic session token acquisition and fix gzip parsing (OpenListTeam#1661) * fix(mediafire): enable automatic session token acquisition and fix gzip parsing - Fix Init() method to allow automatic session token retrieval from cookie - Change SessionToken from required to optional in configuration - Add proper gzip decompression support for API responses - Improve error handling for session token acquisition failures - Update help text to clarify authentication requirements Resolves initialization failure and JSON parsing errors when session token can be automatically obtained from browser cookie. * fix(mediafire): ensure driver files end with newline * chore: gofmt drivers/mediafire/*.go * refactor(op): remove automatic Path assignment (OpenListTeam#1734) * refactor: 移除 ObjResp 中的 Id 和 Path 字段 * 移除op.List的自动设置Path Path和Id只在驱动内使用,不应由op.List设置Path * cnb_releases:将 Addition 结构体中的 RootPath 字段为 RootID 当List方法加载二级目录时,若使用的是Id,应对使用driver.RootID * doubao_share: 添加潜在bug注释 * 添加 GetRootPath 方法到多个驱动 * refactor!(userAgent): merge most userAgent into base (OpenListTeam#1722) refactor!(userAgent): merge all userAgent into base 1. change var to const 2. remove duplicated ua definetion after original Resty R 3. upgrade Chrome and OS versions * feat(fs): Support customizing the cache time for a specific path (OpenListTeam#1533) * feat(fs): Support customizing the cache time for a specific path * feat(fs): Get the cache rule for driver information. * feat(fs): Support globbing. * feat(fs): Add log. --------- * feat(driver): add AList v3 (OpenListTeam#1721) * feat(driver/openlist): compatible with AList v3 * Revert "feat(driver/openlist): compatible with AList v3" This reverts commit 90f3f80. * feat(driver): add AList v3 * Revert "feat(patch): add migration from Alist V3 driver to OpenList (OpenListTeam#919)" --------- * feat(utils): add support for ignoring '@eadir' system files (OpenListTeam#1779) * fix(task): tasks keep being cancelled (OpenListTeam#1745) * fix_cancel * update(go.mod): update tache version * tache v0.2.2 --------- * feat(model): add object mask support and enhance cache/task handling (OpenListTeam#1743) * fix(ilanzou): parse vip size (OpenListTeam#1792) * fix(halalcloud_open): halal-cloud upload issues (OpenListTeam#1800) fix halal-cloud upload issues * refactor(bootstrap): move booting logic to bootstrap package (OpenListTeam#1773) * refactor(bootstrap): move booting to bootstrap package * chore(log): reduce level of some callings of `utils.Log.Fatal` * fix(s3): no shutdown after SIGTERM received * fix: add handle hook * fix(openlist): disable status check for openlist driver (OpenListTeam#1757) * fix(openlist): disable status check to avoid network stability issues * fix(alist_v3): disable status check to avoid network stability issues --------- * feat(ldap): support webdav, ftp and sftp login (OpenListTeam#1746) * feat(ldap): support webdav, ftp and sftp login * fix: apply suggestions of Copilot * feat(ldap) support ftp, sftp and webdav auto-register * feat(drivers/139): user authentication and file batch operations (OpenListTeam#1534) * feat(139): Enhance 139 driver with password login and root path handling - Added support for password-based login in the 139 driver. - Introduced RootPath field to store the root directory path. - Updated Init method to handle family and group types more effectively. - Implemented new methods for handling file operations in family and group contexts. - Enhanced error handling and logging for better debugging. - Added new request and response structures for batch operations and document modifications. - Improved encryption and decryption methods for secure communication. * Update drivers/139/util.go * Update drivers/139/util.go * Update drivers/139/util.go * Update drivers/139/util.go * Update drivers/139/util.go --------- * fix(139): disk-usage unmarshal failed when used capacity overflow (OpenListTeam#1718) * feat(driver): add personal / business wps drive support (OpenListTeam#1802) * feat(driver): add wps drive support * feat(driver): add wps drive support * fix(wps): update personal mode string to English * fix(wps): remove trailing slash from drive origin URL * fix(wps): correct order of options in mode selection * fix(wps): enable local sort and upload overwrite * fix(wps): resolve put bugs, fix file op problems and optimize list logic - Fix uploading bugs. Support all uploading methods based on 8825.85d3c864.js - Fix issues in delete/copy/move while opearting big folders. - Use cache to optimize performance of list, especially in a deep path. --------- * feat(cloudreve_v4): add ks3 support (OpenListTeam#1828) * fix(strm): support generate strm with sign (OpenListTeam#1832) * feat(115_open): support custom pagesize (OpenListTeam#1822) * docs: add VPS.Town as sponsor to all README (OpenListTeam#1842) * fix(s3): incorrect copy key with plus sign (OpenListTeam#1820) * docs: update README for zh-CN (OpenListTeam#1844) * fix(weiyun): update sdk and support getDetails (OpenListTeam#1845) * feat(strm): add save local mode (OpenListTeam#1814) * feat(strm): add KeepSameNameOnly logic * chore(strm): skip update strm file when keepLocalDownloadFile * feat(strm): add save local mode * docs(readme): add demo site (OpenListTeam#1850) Last Sync: 2025-12-22 12:39 * refactor(bootstrap): fix OpenList-Mobile compile failed (OpenListTeam#1857) * feat(alias): support load balance (OpenListTeam#1767) * feat(alias): support load balance * feat(alias): support storage match for load balance * feat(patch): add alias addition upgrade patch * fix bugs * fix(op/balance): optimize compatibility * chore: change default read conflict policy * feat(alias): refactor Alias initialization and enhance path handling * feat(alias): enhance object masking and add support for operation restrictions * feat(alias): enhance object masking * feat(fs): add permission checks * improve parsing * update object masks * feat(fs): enhance virtual file handling * feat(storage): enhance virtual file retrieval and path handling * refactor(alias): rename path handling functions for clarity and consistency * fix(alias): update path handling in Other method to use balanced path * fix bug * feat(alias): add file size validation * feat(alias): add hash consistency check * 移除哈希合并, * fix(alias): wrong behavior for all_strict/deterministic_or_all * Revert "fix(alias): wrong behavior for all_strict/deterministic_or_all" This reverts commit f001f2d. * fix(alias): wrong behavior for all_strict/deterministic_or_all * feat(alias): support part-based read load balance * fix(alias): list panic when leak conflict path * fix(alias): remove Other load balance * fix(alias): 修复 Link 方法中 resultLink 的返回类型和内容复制问题 * fix(alias): 更好的下载并发? * chore(alias): all tips * fix(alias): moving paths mismatch --------- * fix(s3): use current time as default modified time (OpenListTeam#1860) * fix(driver): fix file copy failure to 123pan due to incorrect etag (OpenListTeam#1874) * ci(lang): sync only new fields (OpenListTeam#1881) * fix(123_open): infinite recursive call (OpenListTeam#1854) fix(123_open): token refresh logic Fix token handling logic to avoid deadlock. Token method took reference of Alist's implementation. * feat(qihoo360): fix bugs made by copliot * fix(doubao_share): use new download info (OpenListTeam#1890) fix(doubao_share): update file URL retrieval to use new download info structure * feat(qihoo360): implement file upload functionality and enhance request handling * fix(qihoo360): update user-agent * feat(qihoo360): add User-Agent header for Sync.getVerifiedDownLoadUrl request * feat(drivers/mega): support getting disk usage (OpenListTeam#1903) * feat(drivers/mega): support getting disk usage * fix * feat(qihoo360): implement GetDetails and user detail retrieval functions * feat(drivers/mega): support permanently deleting files (OpenListTeam#1913) * feat(123pan): add offline download (OpenListTeam#1911) * feat(123网盘): 添加123网盘离线下载功能 - 新增123网盘离线下载实现 - 添加相关API接口和常量配置 - 在路由和工具集中集成123网盘支持 * refactor(offline_download): 重构123网盘离线下载状态处理和类型定义 - 将离线下载相关类型定义从util.go移至types.go - 更新状态获取api * 移除了备选方案(/offline_download/task/status) * feat(qihoo360): enhance GetDetails function and update UserDetailResp structure * chore(strm): remove redundant param (OpenListTeam#1929) * feat(drivers): support getting disk usage of some drivers (OpenListTeam#1905) * feat(drivers): support getting disk usage of some drivers * feat(drivers/degoo): implement GetDetails * fix(fs/storage-details): fill used space rather than free space * fix mega * fix bsize type * fix(cloudreve): Manually set path to avoid empty path (OpenListTeam#1933) * fix(drivers/alist_v3): failed to unmarshal MeResp (OpenListTeam#1931) * feat(drivers/webdav): add support for 302 redirects (OpenListTeam#1952) * Remove the `OnlyProxy` restriction and obtain the redirected link to support 302 * Add `driver.Config` `PreferProxy` to recommend user to enable the proxy by default --------- * fix(fs): panic when failed to get storage details (OpenListTeam#1964) * chore(.github): update issue templates [no ci] (OpenListTeam#1976) chore(.github): update issue templates * fix(drivers/ftp): failed to get objs (OpenListTeam#1948) fix(drivers/ftp): failed get objs * feat(drivers/cloudreve_v4): implement Getter interface (OpenListTeam#1937) feat(cloudreve_v4): implement Getter interface * fix(drivers/github): failed to get objs (OpenListTeam#1915) fix(drivers/github): failed get objs * fix(drivers/strm): delete extra local directories in sync mode (OpenListTeam#1980) * fix(ci): change unchecked regex (OpenListTeam#1993) fix(ci/issue): change unchecked regex * feat(drivers): add autoindex driver (OpenListTeam#1978) * feat(drivers): add autoindex driver * fix * add NoUpload * add TestParseSize * go mod tidy * use base.RestyClient * fix: support evaluate size and modified time * fix apache * perf * feat: support ignore size and modified time * rename driver --------- * fix(fs): handle non-existent destination directory in file transfer (OpenListTeam#1898) * fix(FileTransferTask): skip copying if destination directory does not exist * pass only object not found error --------- * feat(drivers/cloudreve): implement GetDetails (OpenListTeam#1960) * fix(driver/quark_uc): Fix display of non-compliant filenames (OpenListTeam#2000) * fix(webdav/move): fix source file still exist after moving file by webdav (OpenListTeam#1979) * perf(baidu_netdisk): reduce the number of file listing requests (OpenListTeam#2016) * 本优化减少了百度网盘驱动下文件列表的请求次数,能加快文件浏览速度。此前只要文件夹下有至少一个文件,都会至少发出2次列表请求。 * fix(drivers/seafile): object not found when RootFolderPath != "/" (OpenListTeam#2010) * fix(driver/seafile): object not found when RootFolderPath != "/" * refactor(seafile): restructure Seafile driver for improved library handling and error management * add IsDir method to LibraryInfo type * improve initialization * add repoID to RepoItemResp and update List method to set repoID --------- * fix(drivers/alias): default sort & substitute link (OpenListTeam#1917) * fix(drivers/alias): default sort & substitute link * fix * fix * fix(drivers/cloudreve_v4): add IsFolder attribute to Getter response (OpenListTeam#2035) * fix(drivers/cloudreve_v4): add IsFolder attribute to Getter response * refactor(drivers/cloudreve_v4): implement File.fileToObject method * fix(drivers/cloudreve_v4): implement 404 not found for getter --------- * fix(drivers/quark): apply html escaping in quark (OpenListTeam#2046) * fix(drivers/quark): apply html escaping in quark * fix(api/remove): add validation for empty items in delete file list (OpenListTeam#1617) * fix(FsRemove): add validation for empty items in delete file list If Req.Names contains an empty string item, the whole directory will be removed. As a result we need add a simple guard to prevent such cases. * fix(FsRemove): enhance validation to prevent unintended directory deletion 1. Use `utils.FixAndCleanPath` to correctly identify and block invalid names. 2. Change error handling from `return` to `continue`. --------- * Merge commit from fork * Merge commit from fork * fix(drivers/teldrive): enhance file listing and upload functionality with pagination and random chunk naming (OpenListTeam#2034) * fix(drivers/teldrive): enhance file listing and upload functionality with pagination and random chunk naming * fix(drivers/teldrive): optimize file listing by removing unnecessary mutex and restructuring data handling * Update drivers/teldrive/meta.go --------- * fix(115_share): adjust 115 share driver for official API update (OpenListTeam#2068) * fix(115_share): add user agent support and update driver dependency * fix(115): fix download error * feat: add thumbnail support for 115 driver and 115 share - Add Thumb() method to FileObj in 115 driver to return thumbnail URL - Add ThumbURL field to FileObj struct in 115 share utility - Update 115driver dependency from v1.2.2 to v1.2.3 to support thumbnail functionality - Implement Thumb() method for 115 share FileObj to return thumbnail URL * chore(ci): add breaking change guideline to PR title check (OpenListTeam#2087) * feat(ci): add PR title validation for breaking changes Updated regex to allow '!' for breaking changes in PR titles. * chore(pr): Update PR template Add bilingual instructions for PR title formatting. --------- * feat(drivers/123open): support sha1 reuse api (OpenListTeam#2089) * feat(drivers/123open): support sha1 reuse api * fix(drivers/123open): fix typos * fix(deps): update go4.org digest to a507140 (OpenListTeam#2095) * fix(drivers/quark_uc_tv) : Update error code judgment (OpenListTeam#2080) * fix error code * add ErrorInfo check * chore(typo): fix typo in UpdateFileReq field name (OpenListTeam#2133) Fix typo in UpdateFileReq field name ref: OpenListTeam/115-sdk-go#3 * fix(driver/wps): fetch all files via multiple API invocations (OpenListTeam#2139) fix(driver/wps): wps list all files in one request * feat(security): add SECURITY.md (OpenListTeam#2147) [skip ci] Add SECURITY.md * chore(handles/auth): improve error response (OpenListTeam#2148) * chore(handles/auth): improve error response * Apply suggestion from @xrgzs --------- * feat(drivers/thunder*): implement GetDetails (OpenListTeam#2113) * Fix critical auth bug: treat access_token_expire as absolute timestamp The API returns access_token_expire as an absolute Unix timestamp, not a duration. The old code was adding it to current time, causing tokens to "expire" in year 2082. This meant tokens appeared valid even after actual expiration (1 hour), causing all API calls to fail after the program ran for some time. Also added retry limit protection to prevent infinite recursion in error handling. --------- Signed-off-by: zzzhr1990 <[email protected]> Signed-off-by: D@' 3z K!7 <[email protected]> Signed-off-by: ShenLin <[email protected]> Signed-off-by: jenfonro <[email protected]> Signed-off-by: yuyamionini <[email protected]> Signed-off-by: MadDogOwner <[email protected]> Signed-off-by: MoYan <[email protected]> Signed-off-by: UcnacDx2 <[email protected]> Signed-off-by: Wodlie <[email protected]> Signed-off-by: KirCute <[email protected]> Signed-off-by: hcrgm <[email protected]> Signed-off-by: huyuantao <[email protected]> Signed-off-by: Chaloemchai <[email protected]> Signed-off-by: LXY <[email protected]> Co-authored-by: Copilot <[email protected]> Co-authored-by: NewbieOrange <[email protected]> Co-authored-by: KirCute <[email protected]> Co-authored-by: ShenLin <[email protected]> Co-authored-by: zzzhr1990 <[email protected]> Co-authored-by: Copilot <[email protected]> Co-authored-by: Tursom K. Ulefits <[email protected]> Co-authored-by: jenfonro <[email protected]> Co-authored-by: j2rong4cn <[email protected]> Co-authored-by: ILoveScratch <[email protected]> Co-authored-by: KirCute <[email protected]> Co-authored-by: jerrita <[email protected]> Co-authored-by: D@' 3z K!7 <[email protected]> Co-authored-by: MadDogOwner <[email protected]> Co-authored-by: walloo <[email protected]> Co-authored-by: MoYan <[email protected]> Co-authored-by: Seven <[email protected]> Co-authored-by: ex-hentai <[email protected]> Co-authored-by: j2rong4cn <[email protected]> Co-authored-by: hcrgm <[email protected]> Co-authored-by: nibazshab <[email protected]> Co-authored-by: ASLant <[email protected]> Co-authored-by: yuyamionini <[email protected]> Co-authored-by: Pikachu Ren <[email protected]> Co-authored-by: VXTLS <[email protected]> Co-authored-by: ImoutoHeaven <[email protected]> Co-authored-by: ImoutoHeaven <[email protected]> Co-authored-by: UcnacDx2 <[email protected]> Co-authored-by: wongz <[email protected]> Co-authored-by: Mako (XSpy) <[email protected]> Co-authored-by: hshpy <[email protected]> Co-authored-by: XZB-1248 <[email protected]> Co-authored-by: XZB-1248 <[email protected]> Co-authored-by: TwoOnefour <[email protected]> Co-authored-by: foxxorcat <[email protected]> Co-authored-by: Seven <[email protected]> Co-authored-by: 绎泽 <[email protected]> Co-authored-by: 我怎么就不是一只猫呢? <[email protected]> Co-authored-by: Tron <[email protected]> Co-authored-by: Edward <[email protected]> Co-authored-by: mcxiedidi <[email protected]> Co-authored-by: Ljcbaby <[email protected]> Co-authored-by: cyk <[email protected]> Co-authored-by: Cp0204 <[email protected]> Co-authored-by: mkitsdts <[email protected]> Co-authored-by: Rui Huang <[email protected]> Co-authored-by: Khoray <[email protected]> Co-authored-by: Hu Yuantao <[email protected]> Co-authored-by: Chaloemchai <[email protected]> Co-authored-by: Shelton Zhu <[email protected]> Co-authored-by: gdm257 <[email protected]> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: LXY <[email protected]> --------- Signed-off-by: Wodlie <[email protected]> Signed-off-by: zzzhr1990 <[email protected]> Signed-off-by: D@' 3z K!7 <[email protected]> Signed-off-by: ShenLin <[email protected]> Signed-off-by: jenfonro <[email protected]> Signed-off-by: yuyamionini <[email protected]> Signed-off-by: MadDogOwner <[email protected]> Signed-off-by: MoYan <[email protected]> Signed-off-by: UcnacDx2 <[email protected]> Signed-off-by: KirCute <[email protected]> Signed-off-by: hcrgm <[email protected]> Signed-off-by: huyuantao <[email protected]> Signed-off-by: Chaloemchai <[email protected]> Signed-off-by: LXY <[email protected]> Co-authored-by: Suyunmeng <[email protected]> Co-authored-by: Copilot <[email protected]> Co-authored-by: NewbieOrange <[email protected]> Co-authored-by: KirCute <[email protected]> Co-authored-by: ShenLin <[email protected]> Co-authored-by: zzzhr1990 <[email protected]> Co-authored-by: Copilot <[email protected]> Co-authored-by: Tursom K. Ulefits <[email protected]> Co-authored-by: jenfonro <[email protected]> Co-authored-by: j2rong4cn <[email protected]> Co-authored-by: ILoveScratch <[email protected]> Co-authored-by: KirCute <[email protected]> Co-authored-by: jerrita <[email protected]> Co-authored-by: D@' 3z K!7 <[email protected]> Co-authored-by: MadDogOwner <[email protected]> Co-authored-by: walloo <[email protected]> Co-authored-by: MoYan <[email protected]> Co-authored-by: Seven <[email protected]> Co-authored-by: ex-hentai <[email protected]> Co-authored-by: j2rong4cn <[email protected]> Co-authored-by: hcrgm <[email protected]> Co-authored-by: nibazshab <[email protected]> Co-authored-by: ASLant <[email protected]> Co-authored-by: yuyamionini <[email protected]> Co-authored-by: Pikachu Ren <[email protected]> Co-authored-by: VXTLS <[email protected]> Co-authored-by: ImoutoHeaven <[email protected]> Co-authored-by: ImoutoHeaven <[email protected]> Co-authored-by: UcnacDx2 <[email protected]> Co-authored-by: wongz <[email protected]> Co-authored-by: Mako (XSpy) <[email protected]> Co-authored-by: hshpy <[email protected]> Co-authored-by: XZB-1248 <[email protected]> Co-authored-by: XZB-1248 <[email protected]> Co-authored-by: TwoOnefour <[email protected]> Co-authored-by: foxxorcat <[email protected]> Co-authored-by: Seven <[email protected]> Co-authored-by: 绎泽 <[email protected]> Co-authored-by: 我怎么就不是一只猫呢? <[email protected]> Co-authored-by: Tron <[email protected]> Co-authored-by: Edward <[email protected]> Co-authored-by: mcxiedidi <[email protected]> Co-authored-by: Ljcbaby <[email protected]> Co-authored-by: cyk <[email protected]> Co-authored-by: Cp0204 <[email protected]> Co-authored-by: mkitsdts <[email protected]> Co-authored-by: Rui Huang <[email protected]> Co-authored-by: Khoray <[email protected]> Co-authored-by: Hu Yuantao <[email protected]> Co-authored-by: Chaloemchai <[email protected]> Co-authored-by: Shelton Zhu <[email protected]> Co-authored-by: gdm257 <[email protected]> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: LXY <[email protected]>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
fix(drivers): free space underflow if used larger than total space (fix(drivers): free space underflow if used larger than total space OpenListTeam/OpenList#1407)
fix(189pc/189tv):
requestpanic when login failed (fix(189pc/189tv):requestpanic when login failed OpenListTeam/OpenList#1428)fix(ilanzou): wrong total capacity (fix(ilanzou): wrong total capacity OpenListTeam/OpenList#1433)
feat(pikpak): support disk usage (feat(pikpak): support disk usage OpenListTeam/OpenList#1426)
feat(pikpak): support disk usage
fix(alias): cannot list with details
refactor: rename
NewDiskUsageFromUsedAndTotalfix(disk-usage): get details of storages that is not initialized
feat(offline_download): add 123 open (feat(offline_download): add 123 open OpenListTeam/OpenList#1427)
feat(http3|quic): add http3|quic support (feat(http3|quic): add http3|quic support OpenListTeam/OpenList#1466)
feat(http3|quic): add http3|quic support
revert(ai): fix ai error
fix(shutdown): shutdown was using close
feat(http3|quic): add config if needs h3
feat(http3|quic): add Alt-Svc to expose h3
chore(frontend): optimize user operations (chore(frontend): optimize user operations OpenListTeam/OpenList#1449)
feat(drivers): add halalcloud_open driver (feat(drivers): add halalcloud_open driver OpenListTeam/OpenList#1430)
新增清真云Open驱动,支持最新的轻量SDK
Change Go version in go.mod
Downgrade Go version from 1.24.2 to 1.23.4
Apply suggestions from code review
Removed unnecessary comments
Downgraded the Go version to 1.23.4.
Not sure whether FileStream supports concurrent read and write operations, so currently using single-threaded upload to ensure safety.
feat(halalcloud_open): support disk usage
Set useSingleUpload to true for upload safety
Not sure whether FileStream supports concurrent read and write operations, so currently using single-threaded upload to ensure safety.
Change required for RefreshToken, If using a personal API approach, the RefreshToken is not required.
remove debug logs
bump halalcloud SDK version
fix unnecessary params
Update drivers/halalcloud_open/driver_init.go
Fixed spelling errors; changed hardcoded retry parameters to constants.
remove pointer in get link function in utils.go
feat(http3|quic): Set Alt-Svc header only for HTTPS requests (feat(http3|quic): Set Alt-Svc header only for HTTPS requests OpenListTeam/OpenList#1469)
feat(local): move deleted files to corresponding locations (feat(local): move deleted files to corresponding locations OpenListTeam/OpenList#1281)
fix(fs):fix retry task after restart (fix(fs):fix retry task after restart OpenListTeam/OpenList#1467)
fix retry task after restart
fix: initialize SrcStorage and DstStorage in tasks to prevent nil pointer dereference
feat: implement storage load signal mechanism for improved synchronization
fix: update StoragesLoaded logic
refactor: reorganize storage loading logic and improve synchronization handling
feat(cache): improve cache management (feat(cache): improve cache management OpenListTeam/OpenList#1339)
feat(cache): improve cache management
feat(disk-usage): add cache
feat(disk-usage): add refresh
fix(disk-usage): cache with ttl
feat(cache): implement KeyedCache and TypedCache for improved caching mechanism
fix(copy): update object retrieval to use Get instead of GetUnwrap
refactor(cache): simplify DirectoryCache structure and improve object management
fix(cache): correct cache entry initialization and key deletion logic in TypedCache
refactor(driver): remove GetObjInfo interface and simplify Link function logic https://github.com/OpenListTeam/OpenList/pull/888/files#r2430925783
fix(link): optimize link retrieval and caching logic
refactor(cache): consolidate cache management and improve directory cache handling
fix(cache): add cache control based on storage configuration in List function
.
refactor: replace fmt.Sprintf with strconv for integer conversions
refactor(cache): enhance cache entry management with Expirable interface
fix(cache): improve link reference acquisition logic to handle expiration
refactor: replace OnlyLinkMFile with NoLinkSF in driver configurations and logic
refactor(link): enhance link caching logic with dynamic type keys based on IP and User-Agent
feat(drivers): add LinkCacheType to driver configurations for enhanced caching
refactor(cache): streamline directory object management in cache operations
refactor(cache): remove unnecessary 'dirty' field from CacheEntry structure
refactor(cache): replace 'dirty' field with bitwise flags
refactor(io): 调高SyncClosers.AcquireReference的优先级
refactor(link): 优化链接获取逻辑,增加重
refactor(link): 添加RequireReference字段以增强链接管理
refactor(link): 移除MFile字段,改用RangeReader
refactor: 移除不必要的NoLinkSF字段
refactor(cache): 修改目录缓存的脏标志定义和更新逻辑
feat(cache): add expiration gc
feat(onedrive): add ref support (feat(onedrive): add ref support OpenListTeam/OpenList#1435)
feat(onedrive): add ref support
fix(onedrive): remove redundant token assignment from reference
feat(drivers): add ProtonDrive driver (feat(drivers): add ProtonDrive driver OpenListTeam/OpenList#1368)
feat(drivers): add ProtonDrive driver
Update drivers/proton_drive/util.go
chore
feat(drivers): enhance ProtonDrive temp server
feat(proton_drive): refactor directory handling and improve link retrieval
fix(proton_drive): add NoLinkURL configuration option
fix(proton_drive): update file size retrieval and enforce TwoFACode requirement
feat(proton_drive): add expiration to link response
fix(proton_drive): handle empty RootFolderID in Init method
fix(proton_drive): update credential handling to use email and reusable login
fix(proton_drive): update credential handling to use reusableCredential variable
fix(proton_drive): update DirectRename to use GetLink for source object retrieval
fix(proton_drive): refactor uploadFile to return model.Obj and handle errors correctly
fix(proton_drive): refactor DirectMove to use getLink for source retrieval and simplify destination handling
fix(proton_drive): simplify Copy method by removing temporary file creation and directly using FileStream
refactor(proton_drive): remove unused temporary server and related code
chore
fix(proton_drive): fix driver
fix(proton_drive): simplify reusable login handling in Init method
fix(proton_drive): fix driver
feat(proton_drive): improve authentication handling and remove unused variables
fix(proton_drive): fix driver
fix(proton_drive): improve authentication handling
refactor(proton_drive): move client initialization to initClient method
feat(proton_drive): move addrs and addrKRs
feat(proton_drive): optimize upload threads
feat(openlist): add PassIPToUpsteam to driver (feat(openlist): add PassIPToUpsteam to driver OpenListTeam/OpenList#1498)
fix(share): remove share when user delete (fix(share): remove share when user delete OpenListTeam/OpenList#1493)
fix(aliyundrive_open): use safe disk usage calculation (fix(aliyundrive_open): use safe disk usage calculation OpenListTeam/OpenList#1510)
feat(command): add --config flag to set custom config path (feat(command): add --config flag to set custom config path OpenListTeam/OpenList#1479)
fix(alias): nil panic in
ResolveLinkCacheMode(fix(alias): nil panic inResolveLinkCacheModeOpenListTeam/OpenList#1527)fix(alias): Check the driver path during initialization
fix(alias): Don't check the driver path during initialization anymore.
feat(123): allow modification of the platform header (feat(123): allow modification of the platform header OpenListTeam/OpenList#1542)
feat(drivers/123): Allow modification of the platform field
feat(drivers/123): Set login platfrom as web
fix(drivers/123): update platform field help value
feat(strm): strm local file (feat(strm): strm local file OpenListTeam/OpenList#1127)
feat(strm): strm local file
feat: 代码优化
feat: 访问被strm挂载路径时也更新
fix: 路径最后带/判断缺失
fix: 路径最后带/判断缺失
refactor
refactor
fix: close seekable-stream in
generateStrmrefactor: lazy create local file
优化路径判断
allows access to files on remote devices via Thunder's tunneling service.
feat(net): support proxy configuration via config file (feat(net): support proxy configuration via config file OpenListTeam/OpenList#1359)
support proxy
debug
debug2
del debug
add proxy configuration with env var fallback
comments to en
refactor(env): fallback env
fix(google_driver): fix google link file display size (fix(google_driver): fix google link file display size OpenListTeam/OpenList#1335)
fix file link display size
fix performance and field
cn to en notes
chore(strm): Built-in file types support modification (chore(strm): Built-in file types support modification OpenListTeam/OpenList#1483)
fix(baidu_netdisk): support resuming uploads when an error occurs (fix(baidu_netdisk): support resuming uploads when an error occurs OpenListTeam/OpenList#1279)
support resuming uploads when an error occurs
feat(stream): enhance GetRangeReaderFromLink rate limiting (feat(stream): enhance GetRangeReaderFromLink rate limiting OpenListTeam/OpenList#1528)
feat(stream): enhance GetRangeReaderFromLink rate limiting
refactor(stream): update GetRangeReaderFromMFile to return *model.FileRangeReader
refactor(stream): simplify context error handling in RateLimitReader, RateLimitWriter, and RateLimitFile
refactor(net): replace custom LimitedReadCloser with readers.NewLimitedReadCloser
fix(model): update Link.ContentLength JSON tag for correct serialization
docs(model): add clarification to FileRangeReader usage comment
fix(backup-restore): add shares (fix(backup-restore): add shares OpenListTeam/OpenList#1500)
perf(stream): optimize CacheFullAndWriter for better memory management (perf(stream): optimize CacheFullAndWriter for better memory management OpenListTeam/OpenList#1584)
perf(stream): optimize CacheFullAndWriter for better memory management
fix(stream): ensure proper seek handling in CacheFullAndWriter for improved data integrity
fix(baidu_netdisk): improve upload experience (fix(baidu_netdisk): improve upload experience OpenListTeam/OpenList#1562)
fix(baidu_netdisk): improve upload experience
fix(typo): URL should be uppercase, apply suggestion from @copilot
fix(typo): URL should be uppercase, apply suggestion from @copilot
fix(baidu_netdisk): use "UploadAPI" as a fallback when using dynamic upload api
fix(baidu_netdisk): all uploads share the same upload url cache
fix(drivers/baidu_netdisk): defer uploadUrlMu unlock
update driver.go to main
feat(github_release): support Source code (zip/tar.gz) (feat(github_release): support Source code (zip/tar.gz) OpenListTeam/OpenList#1581)
support Github Release Source code (zip/tar.gz)
fix TarballUrl and ZipballUrl
fix show source code by allversion
fix(189): disk-usage unmarshal failed when used capacity overflow (fix(189): disk-usage unmarshal failed when used capacity overflow OpenListTeam/OpenList#1577)
refactor(stream): simplify code (refactor(stream): simplify code OpenListTeam/OpenList#1590)
refactor(stream): simplify Close method and update SeekableStream to use RangeReader interface
refactor(stream): improve RangeRead comments for clarity
fix(strm): non-specified type generates strm (fix(strm): non-specified type generates strm OpenListTeam/OpenList#1585)
fix(strm): non-specified type generates strm
fix(strm): only insert to strmTrie if SaveStrmToLocal is enabled
fix(strm): update suffix handling in convert2strmObjs function
fix(strm): refactor generateStrm to use range reader
feat(onedrive): support frontend direct upload (feat(onedrive): support frontend direct upload OpenListTeam/OpenList#1532)
OneDrive添加直连上传
refactor
fix: duplicate root path join
refactor(fs): implement immediate retry within task execution cycle (refactor(fs): implement immediate retry within task execution cycle OpenListTeam/OpenList#1575)
fix(baidu_netdisk): Fix Baidu Netdisk resume uploads sticking to the same upload host (fix(baidu_netdisk): Fix Baidu Netdisk resume uploads sticking to the same upload host OpenListTeam/OpenList#1609)
Fix Baidu Netdisk resume uploads sticking to the same upload host
Initial plan
Initial plan for qihoo360 driver implementation
Implement qihoo360 driver with basic file operations
Remove OpenList binary from repository
Fix security issue: remove sensitive data from debug logs
Clean up: remove binary and update gitignore
fix(terabox): wrong return code used (fix(terabox): rename, delete, copy operations sometimes failed OpenListTeam/OpenList#1547)
fix(terabox): rename, delete, copy operations sometimes failed
fix(archive/zip): user specific encoding for non-EFS zips (fix(archive/zip): user specific encoding for non-EFS zips OpenListTeam/OpenList#1599)
fix(archive/zip): user specific encoding for non-EFS zips
fix(stream): simplify head cache initialization and improve reader retrieval logic
fix: support multipart zips (.z01)
chore(deps): update github.com/KirCute/zip to v1.0.1
feat(doubao): Add rate limiting (feat(doubao): Add rate limiting OpenListTeam/OpenList#1618)
chore(issue templates): require logs (chore(issue templates): require logs OpenListTeam/OpenList#1626)
Fix infinite loop in authentication flow
Move auth check inside method validation to prevent infinite recursion when getAuth() calls request(). Now request() only checks authentication when method is not empty, breaking the circular dependency.
feat(s3): support frontend direct upload (feat(s3): support frontend direct upload OpenListTeam/OpenList#1631)
feat(s3): support frontend direct upload
feat(s3): support custom direct upload host
fix: apply suggestions of Copilot
fix(link): correct link cache mode bitwise comparison (fix(link): correct link cache mode bitwise comparison OpenListTeam/OpenList#1635)
fix(link): correct link cache mode bitwise comparison
refactor(link): use explicit flag equality for link cache mode bitmask checks
feat(upload): add optional system file filtering for uploads (feat(upload): add optional system file filtering for uploads OpenListTeam/OpenList#1634)
fix(driver/123): initialize Platform field (fix(driver/123): initialize Platform field OpenListTeam/OpenList#1644)
fix(driver/123): initialization the Platform field
Fix formatting of Platform field in Pan123
fix(openlist_driver): ensure UA is correctly propagated (fix(openlist_driver): ensure UA is correctly propagated OpenListTeam/OpenList#1679)
feat(fs): support manually trigger objs update hook (feat(fs): support manually trigger objs update hook OpenListTeam/OpenList#1620)
feat(fs): support manually trigger objs update hook
fix: support driver internal copy & move case
fix
fix: apply suggestions of Copilot
fix(misskey): folderId format validation and root directory handling (fix(misskey): folderId format validation and root directory handling OpenListTeam/OpenList#1647)
fix(misskey): Fix folderId format validation and root directory handling
fix(strm): fix the name and type issue (fix(strm): fix the name and type issue OpenListTeam/OpenList#1630)
fix(strm): fix the name and type issue
fix(strm): update version
feat(strm): custom path prefixes (feat(strm): custom path prefixes OpenListTeam/OpenList#1697)
fix(strm): custom path prefixes
add timeout
fix(local): assign non-CoW copy requests to the task module (fix(local): assign non-CoW copy requests to the task module OpenListTeam/OpenList#1669)
fix(local): assign non-CoW copy requests to the task module
fix build
fix cross device
feat(fs): Add skipExisting option to move and copy, merge option to copy (feat(fs): Add skipExisting option to move and copy, merge option to copy OpenListTeam/OpenList#1556)
fix(fs): Add skipExisting option to move and copy.
feat(fs): Add merge option to copy.
feat(fs): Code smell.
feat(fs): Code smell.
feat(archive): support non-overwrite decompress (feat(archive): support non-overwrite decompress OpenListTeam/OpenList#1701)
feat(search): Add task queue for Meilisearch to prevent race conditions (feat(search): Add task queue for Meilisearch to prevent race conditions OpenListTeam/OpenList#1423)
Add task queue for Meilisearch to prevent race conditions
When tasks are skipped due to pending dependencies, they are now re-enqueued if not already in queue. This prevents task loss while avoiding overwriting newer snapshots for the same parent.
fix(search): fix duplicated variable init (fix(search): fix duplicated variable init OpenListTeam/OpenList#1703)
chore(archive): fix struct literal uses unkeyed fields (chore(archive): fix struct literal uses unkeyed fields OpenListTeam/OpenList#1704)
chore(pkg/aria2): simplify context cancellation handling in RPC calls (chore(pkg/aria2): simplify context cancellation handling in RPC calls OpenListTeam/OpenList#1705)
fix(pkg/aria2): use pointer receivers for Call methods (fix(pkg/aria2): use pointer receivers for Call methods OpenListTeam/OpenList#1706)
feat(strm): keep local download file (feat(strm): keep local download file OpenListTeam/OpenList#1707)
fix(onedrive_shareurl): Reduce temporary file errors (fix(onedrive_shareurl): Reduce temporary file errors OpenListTeam/OpenList#1686)
fix onedrive_shareurl
.
chore(strm): avoid generating empty folders (chore(strm): avoid generating empty folders OpenListTeam/OpenList#1720)
chore(strm): empty folders are not generated locally
refactor: improve upload handling (refactor: improve upload handling OpenListTeam/OpenList#1455)
fix(quark): refactor upPart to use http.NewRequest
fix(quark): improved upload handling
fix(quark_open): improved upload handling
fix: add retry context to multiple upload functions
fix: optimize hash calculation in multipart upload to avoid blocking
fix: update error handling in lifecycle functions for better clarity
fix: update upload progress calculation to improve accuracy
fix: simplify error handling in lifecycle functions for improved readability
fix: remove unnecessary mutex for part uploads to simplify code
fix(stream): simplify file handling in NewStreamSectionReader and improve error messages
fix(terabox): optimize chunk count calculation in Put method
perf(chaoxing): 表单上传文件0拷贝
fix(cnb_releases): improve file upload progress tracking
fix(baidu_netdisk): improve upload handling
fix(upload): optimize buffer initialization for file uploads
fix(baidu_netdisk): add retry condition to skip ErrUploadIDExpired in upload loop
fix(drivers/crypt): remove hard dependency on RemotePath (fix(drivers/crypt): remove hard dependency on RemotePath OpenListTeam/OpenList#1713)
fix(mediafire): enable automatic session token acquisition and fix gzip parsing (fix(mediafire): enable automatic session token acquisition and fix gzip parsing OpenListTeam/OpenList#1661)
fix(mediafire): enable automatic session token acquisition and fix gzip parsing
Resolves initialization failure and JSON parsing errors when session token can be automatically obtained from browser cookie.
fix(mediafire): ensure driver files end with newline
chore: gofmt drivers/mediafire/*.go
refactor(op): remove automatic Path assignment (refactor(op): remove automatic Path assignment OpenListTeam/OpenList#1734)
refactor: 移除 ObjResp 中的 Id 和 Path 字段
移除op.List的自动设置Path Path和Id只在驱动内使用,不应由op.List设置Path
cnb_releases:将 Addition 结构体中的 RootPath 字段为 RootID 当List方法加载二级目录时,若使用的是Id,应对使用driver.RootID
doubao_share: 添加潜在bug注释
添加 GetRootPath 方法到多个驱动
refactor!(userAgent): merge most userAgent into base (refactor!(userAgent): merge most userAgent into base OpenListTeam/OpenList#1722)
refactor!(userAgent): merge all userAgent into base
feat(fs): Support customizing the cache time for a specific path (feat(fs): Support customizing the cache time for a specific path OpenListTeam/OpenList#1533)
feat(fs): Support customizing the cache time for a specific path
feat(fs): Get the cache rule for driver information.
feat(fs): Support globbing.
feat(fs): Add log.
feat(driver): add AList v3 (feat(driver): add AList v3 OpenListTeam/OpenList#1721)
feat(driver/openlist): compatible with AList v3
Revert "feat(driver/openlist): compatible with AList v3"
This reverts commit 90f3f80.
feat(driver): add AList v3
Revert "feat(patch): add migration from Alist V3 driver to OpenList (feat(patch): add migration from Alist V3 driver to OpenList OpenListTeam/OpenList#919)"
feat(utils): add support for ignoring '@eadir' system files (feat(utils): add support for ignoring '@eaDir' system files OpenListTeam/OpenList#1779)
fix(task): tasks keep being cancelled (fix(task): tasks keep being cancelled OpenListTeam/OpenList#1745)
fix_cancel
update(go.mod): update tache version
tache v0.2.2
feat(model): add object mask support and enhance cache/task handling (feat(model): add object mask support and enhance cache/task handling OpenListTeam/OpenList#1743)
fix(ilanzou): parse vip size (fix(ilanzou): parse vip size OpenListTeam/OpenList#1792)
fix(halalcloud_open): halal-cloud upload issues (fix(halalcloud_open): halal-cloud upload issues OpenListTeam/OpenList#1800)
fix halal-cloud upload issues
refactor(bootstrap): move booting logic to bootstrap package (refactor(bootstrap): move booting logic to bootstrap package OpenListTeam/OpenList#1773)
refactor(bootstrap): move booting to bootstrap package
chore(log): reduce level of some callings of
utils.Log.Fatalfix(s3): no shutdown after SIGTERM received
fix: add handle hook
fix(openlist): disable status check for openlist driver (fix(openlist): disable status check for openlist driver OpenListTeam/OpenList#1757)
fix(openlist): disable status check to avoid network stability issues
fix(alist_v3): disable status check to avoid network stability issues
feat(ldap): support webdav, ftp and sftp login (feat(ldap): support webdav, ftp and sftp login OpenListTeam/OpenList#1746)
feat(ldap): support webdav, ftp and sftp login
fix: apply suggestions of Copilot
feat(ldap) support ftp, sftp and webdav auto-register
feat(drivers/139): user authentication and file batch operations (feat(drivers/139): user authentication and file batch operations OpenListTeam/OpenList#1534)
feat(139): Enhance 139 driver with password login and root path handling
Update drivers/139/util.go
Update drivers/139/util.go
Update drivers/139/util.go
Update drivers/139/util.go
Update drivers/139/util.go
fix(139): disk-usage unmarshal failed when used capacity overflow (fix(139): disk-usage unmarshal failed when used capacity overflow OpenListTeam/OpenList#1718)
feat(driver): add personal / business wps drive support (feat(driver): add personal / business wps drive support OpenListTeam/OpenList#1802)
feat(driver): add wps drive support
feat(driver): add wps drive support
fix(wps): update personal mode string to English
fix(wps): remove trailing slash from drive origin URL
fix(wps): correct order of options in mode selection
fix(wps): enable local sort and upload overwrite
fix(wps): resolve put bugs, fix file op problems and optimize list logic
feat(cloudreve_v4): add ks3 support (feat(cloudreve_v4): add ks3 support OpenListTeam/OpenList#1828)
fix(strm): support generate strm with sign (fix(strm): support generate strm with sign OpenListTeam/OpenList#1832)
feat(115_open): support custom pagesize (feat(115_open): support custom pagesize OpenListTeam/OpenList#1822)
docs: add VPS.Town as sponsor to all README (docs: add VPS.Town as sponsor to all README OpenListTeam/OpenList#1842)
fix(s3): incorrect copy key with plus sign (fix(s3): incorrect copy key with plus sign OpenListTeam/OpenList#1820)
docs: update README for zh-CN (docs: update README for zh-CN OpenListTeam/OpenList#1844)
fix(weiyun): update sdk and support getDetails (fix(weiyun): update sdk and support getDetails OpenListTeam/OpenList#1845)
feat(strm): add save local mode (feat(strm): add save local mode OpenListTeam/OpenList#1814)
feat(strm): add KeepSameNameOnly logic
chore(strm): skip update strm file when keepLocalDownloadFile
feat(strm): add save local mode
docs(readme): add demo site (docs(readme): add demo site OpenListTeam/OpenList#1850)
Last Sync: 2025-12-22 12:39
refactor(bootstrap): fix OpenList-Mobile compile failed (refactor(bootstrap): fix OpenList-Mobile compile failed OpenListTeam/OpenList#1857)
feat(alias): support load balance (feat(alias): support load balance OpenListTeam/OpenList#1767)
feat(alias): support load balance
feat(alias): support storage match for load balance
feat(patch): add alias addition upgrade patch
fix bugs
fix(op/balance): optimize compatibility
chore: change default read conflict policy
feat(alias): refactor Alias initialization and enhance path handling
feat(alias): enhance object masking and add support for operation restrictions
feat(alias): enhance object masking
feat(fs): add permission checks
improve parsing
update object masks
feat(fs): enhance virtual file handling
feat(storage): enhance virtual file retrieval and path handling
refactor(alias): rename path handling functions for clarity and consistency
fix(alias): update path handling in Other method to use balanced path
fix bug
feat(alias): add file size validation
feat(alias): add hash consistency check
移除哈希合并,
fix(alias): wrong behavior for all_strict/deterministic_or_all
Revert "fix(alias): wrong behavior for all_strict/deterministic_or_all"
This reverts commit f001f2d.
fix(alias): wrong behavior for all_strict/deterministic_or_all
feat(alias): support part-based read load balance
fix(alias): list panic when leak conflict path
fix(alias): remove Other load balance
fix(alias): 修复 Link 方法中 resultLink 的返回类型和内容复制问题
fix(alias): 更好的下载并发?
chore(alias): all tips
fix(alias): moving paths mismatch
fix(s3): use current time as default modified time (fix(s3): use current time as default modified time OpenListTeam/OpenList#1860)
fix(driver): fix file copy failure to 123pan due to incorrect etag (fix(driver): fix file copy failure to 123pan due to incorrect etag OpenListTeam/OpenList#1874)
ci(lang): sync only new fields (ci(lang): sync only new fields OpenListTeam/OpenList#1881)
fix(123_open): infinite recursive call (fix(123_open): infinite recursive call OpenListTeam/OpenList#1854)
fix(123_open): token refresh logic
Fix token handling logic to avoid deadlock. Token method took reference of Alist's implementation.
feat(qihoo360): fix bugs made by copliot
fix(doubao_share): use new download info (fix(doubao_share): use new download info OpenListTeam/OpenList#1890)
fix(doubao_share): update file URL retrieval to use new download info structure
feat(qihoo360): implement file upload functionality and enhance request handling
fix(qihoo360): update user-agent
feat(qihoo360): add User-Agent header for Sync.getVerifiedDownLoadUrl request
feat(drivers/mega): support getting disk usage (feat(drivers/mega): support getting disk usage OpenListTeam/OpenList#1903)
feat(drivers/mega): support getting disk usage
fix
feat(qihoo360): implement GetDetails and user detail retrieval functions
feat(drivers/mega): support permanently deleting files (feat(drivers/mega): support permanently deleting files OpenListTeam/OpenList#1913)
feat(123pan): add offline download (feat(123pan): add offline download OpenListTeam/OpenList#1911)
feat(123网盘): 添加123网盘离线下载功能
移除了备选方案(/offline_download/task/status)
feat(qihoo360): enhance GetDetails function and update UserDetailResp structure
chore(strm): remove redundant param (chore(strm): remove redundant param OpenListTeam/OpenList#1929)
feat(drivers): support getting disk usage of some drivers (feat(drivers): support getting disk usage of some drivers OpenListTeam/OpenList#1905)
feat(drivers): support getting disk usage of some drivers
feat(drivers/degoo): implement GetDetails
fix(fs/storage-details): fill used space rather than free space
fix mega
fix bsize type
fix(cloudreve): Manually set path to avoid empty path (fix(cloudreve): Manually set path to avoid empty path OpenListTeam/OpenList#1933)
fix(drivers/alist_v3): failed to unmarshal MeResp (fix(drivers/alist_v3): failed to unmarshal MeResp OpenListTeam/OpenList#1931)
feat(drivers/webdav): add support for 302 redirects (feat(drivers/webdav): add support for 302 redirects OpenListTeam/OpenList#1952)
Remove the
OnlyProxyrestriction and obtain the redirected link to support 302Add
driver.ConfigPreferProxyto recommend user to enable the proxy by defaultfix(fs): panic when failed to get storage details (fix(fs): panic when failed to get storage details OpenListTeam/OpenList#1964)
chore(.github): update issue templates [no ci] (chore(.github): update issue templates [no ci] OpenListTeam/OpenList#1976)
chore(.github): update issue templates
fix(drivers/ftp): failed get objs
feat(cloudreve_v4): implement Getter interface
fix(drivers/github): failed get objs
fix(drivers/strm): delete extra local directories in sync mode (fix(drivers/strm): delete extra local directories in sync mode OpenListTeam/OpenList#1980)
fix(ci): change unchecked regex (fix(ci): change unchecked regex OpenListTeam/OpenList#1993)
fix(ci/issue): change unchecked regex
feat(drivers): add autoindex driver (feat(drivers): add autoindex driver OpenListTeam/OpenList#1978)
feat(drivers): add autoindex driver
fix
add NoUpload
add TestParseSize
go mod tidy
use base.RestyClient
fix: support evaluate size and modified time
fix apache
perf
feat: support ignore size and modified time
rename driver
fix(fs): handle non-existent destination directory in file transfer (fix(fs): handle non-existent destination directory in file transfer OpenListTeam/OpenList#1898)
fix(FileTransferTask): skip copying if destination directory does not exist
pass only object not found error
feat(drivers/cloudreve): implement GetDetails (feat(drivers/cloudreve): implement GetDetails OpenListTeam/OpenList#1960)
fix(driver/quark_uc): Fix display of non-compliant filenames (fix(driver/quark_uc): Fix display of non-compliant filenames OpenListTeam/OpenList#2000)
fix(webdav/move): fix source file still exist after moving file by webdav (fix(webdav/move): fix source file still exist after moving file by webdav OpenListTeam/OpenList#1979)
perf(baidu_netdisk): reduce the number of file listing requests (perf(baidu_netdisk): reduce the number of file listing requests OpenListTeam/OpenList#2016)
本优化减少了百度网盘驱动下文件列表的请求次数,能加快文件浏览速度。此前只要文件夹下有至少一个文件,都会至少发出2次列表请求。
fix(drivers/seafile): object not found when RootFolderPath != "/" (fix(drivers/seafile): object not found when RootFolderPath != "/" OpenListTeam/OpenList#2010)
fix(driver/seafile): object not found when RootFolderPath != "/"
refactor(seafile): restructure Seafile driver for improved library handling and error management
add IsDir method to LibraryInfo type
improve initialization
add repoID to RepoItemResp and update List method to set repoID
fix(drivers/alias): default sort & substitute link (fix(drivers/alias): default sort & substitute link OpenListTeam/OpenList#1917)
fix(drivers/alias): default sort & substitute link
fix
fix
fix(drivers/cloudreve_v4): add IsFolder attribute to Getter response (fix(drivers/cloudreve_v4): add IsFolder attribute to Getter response OpenListTeam/OpenList#2035)
fix(drivers/cloudreve_v4): add IsFolder attribute to Getter response
refactor(drivers/cloudreve_v4): implement File.fileToObject method
fix(drivers/cloudreve_v4): implement 404 not found for getter
fix(drivers/quark): apply html escaping in quark (fix(drivers/quark): apply html escaping in quark OpenListTeam/OpenList#2046)
fix(drivers/quark): apply html escaping in quark
fix(api/remove): add validation for empty items in delete file list (fix(api/remove): add validation for empty items in delete file list OpenListTeam/OpenList#1617)
fix(FsRemove): add validation for empty items in delete file list
If Req.Names contains an empty string item, the whole directory will be removed. As a result we need add a simple guard to prevent such cases.
utils.FixAndCleanPathto correctly identify and block invalid names.returntocontinue.Merge commit from fork
Merge commit from fork
fix(drivers/teldrive): enhance file listing and upload functionality with pagination and random chunk naming (fix(drivers/teldrive): enhance file listing and upload functionality with pagination and random chunk naming OpenListTeam/OpenList#2034)
fix(drivers/teldrive): enhance file listing and upload functionality with pagination and random chunk naming
fix(drivers/teldrive): optimize file listing by removing unnecessary mutex and restructuring data handling
Update drivers/teldrive/meta.go
fix(115_share): adjust 115 share driver for official API update (fix(115_share): adjust 115 share driver for official API update OpenListTeam/OpenList#2068)
fix(115_share): add user agent support and update driver dependency
fix(115): fix download error
feat: add thumbnail support for 115 driver and 115 share
chore(ci): add breaking change guideline to PR title check (chore(ci): add breaking change guideline to PR title check OpenListTeam/OpenList#2087)
feat(ci): add PR title validation for breaking changes
Updated regex to allow '!' for breaking changes in PR titles.
Add bilingual instructions for PR title formatting.
feat(drivers/123open): support sha1 reuse api (feat(drivers/123open): support sha1 reuse api OpenListTeam/OpenList#2089)
feat(drivers/123open): support sha1 reuse api
fix(drivers/123open): fix typos
fix(deps): update go4.org digest to a507140 (fix(deps): update go4.org digest to a507140 OpenListTeam/OpenList#2095)
fix(drivers/quark_uc_tv) : Update error code judgment (fix(drivers/quark_uc_tv) : Update error code judgment OpenListTeam/OpenList#2080)
fix error code
add ErrorInfo check
chore(typo): fix typo in UpdateFileReq field name (chore(typo): fix typo in UpdateFileReq field name OpenListTeam/OpenList#2133)
Fix typo in UpdateFileReq field name
ref: OpenListTeam/115-sdk-go#3
fix(driver/wps): wps list all files in one request
[skip ci]
Add SECURITY.md
chore(handles/auth): improve error response (chore(handles/auth): improve error response OpenListTeam/OpenList#2148)
chore(handles/auth): improve error response
Apply suggestion from @xrgzs
feat(drivers/thunder*): implement GetDetails (feat(drivers/thunder*): implement GetDetails OpenListTeam/OpenList#2113)
Fix critical auth bug: treat access_token_expire as absolute timestamp
The API returns access_token_expire as an absolute Unix timestamp, not a duration. The old code was adding it to current time, causing tokens to "expire" in year 2082. This meant tokens appeared valid even after actual expiration (1 hour), causing all API calls to fail after the program ran for some time.
Also added retry limit protection to prevent infinite recursion in error handling.
Description / 描述
Motivation and Context / 背景
Closes #XXXX
Relates to #XXXX
How Has This Been Tested? / 测试
Checklist / 检查清单
我已阅读 CONTRIBUTING 文档。
go fmtor prettier.我已使用
go fmt或 prettier 格式化提交的代码。我已为此 PR 添加了适当的标签(如无权限或需要的标签不存在,请在描述中说明,管理员将后续处理)。
我已在适当情况下使用"Request review"功能请求相关代码作者进行审查。
我已相应更新了相关仓库(若适用)。