Commit Graph

1156 Commits

Author SHA1 Message Date
j2rong4cn b6db83ed5e refactor: unify stream caching via HybridCache (#2460)
* add LinearMemory

* replace mmap with LinearMemory

* remove unused code

* add GuardedMemory; add `min_free_memoryMB` conf

* add HybridCache and StreamBuffer

* log

* rename SizedReadWriterAt to Section

* 重构 FileStream,改用 HybridCache

* 重构 HybridCache,更新方法名并添加回滚功能;优化请求和流处理逻辑

* 重构 StreamSectionReader 接口,使用HybridCache

* 在 NewGuardedMemory 函数中添加了对 LinearMemory 的最终化处理,以确保内存释放

* .

* 优化检查逻辑

* 重命名

* 改进、重命名

* 修复

* 添加测试

* 移除HybridCacheReader并引入DynamicReadAtSeeker

* 重构缓存读取逻辑,简化代码并引入ReadFromN方法

* 优化缓存配置注释并修复下载器部分大小限制逻辑

* 优化中断逻辑

* 优化下载器代码

* 修复bug

* HybridCache添加多文件缓存模式

* 优化下载器并发,添加测试

* 修复bug

* 重命名+注释

* .

* fix(net): always cleanup downloader on interrupt

* fix(net): guard chunk enqueue with context cancel

* fix(net): update interrupt logic and add download interrupt test

* fix(test): update concurrency limit in high concurrency test

* refactor(buffer): simplify ReadAt logic

* refactor(config): update memory configuration logic

* .

---------

Co-authored-by: Suyunmeng <Susus0175@proton.me>
2026-05-14 22:14:54 +08:00
LuckyPhoenix 0726d16632 feat(189pc): implement AccessToken login (#2245)
Optimize the 189pc driver to implement AccessToken login
2026-05-12 23:08:02 +08:00
Pikachu Ren 7feec2b7d9 fix(driver): fix 189 & 189pc fastcopy form local storage (#2471)
* fix(driver): fix 189 & 189pc fastcopy form local storage

* fix(driver): fix 189 & 189pc fastcopy form local storage

* fix(driver): fix 189 & 189pc fastcopy form local storage
2026-05-12 21:45:06 +08:00
j2rong4cn d3a6b06566 perf: replace strings.Split with strings.SplitSeq (#2441) 2026-05-04 13:05:07 +08:00
mkitsdts e87e028a49 fix(internal/fs): add ObjectAlreadyExists error check (#2019)
* fix(webdav/drivers):add errors check

* chore(pkg/error):add errs.IsObjectAlreadyExists function

* chore(pkg/error):rollback error change

* chore(op/makedir):add IsObjectAlreadyExists check

* fix(driver/quark_uc):add makedir response checking

* fix(op/put):add makedir error checking

* chore(op/put):fix logic error

* fix(driver/uc):fix error resp check

* chore(op/makedir):add parentPath check

* fix(op/makedir):fix some errors

* fix(op/makedir):fix logic error

* fix(drivers/cloudreve_v4): add object existence error

---------

Signed-off-by: MadDogOwner <xiaoran@xrgzs.top>
Co-authored-by: MadDogOwner <xiaoran@xrgzs.top>
2026-05-03 19:10:31 +08:00
ZRHan e28406fa2c feat(webdav): implement Getter interface (#2421)
* feat(webdav): implement Getter interface

* fix(webdav): update Get method to use correct path handling

Co-authored-by: Copilot <copilot@github.com>

* fix(s3): correct path handling in Get method for object retrieval

---------

Co-authored-by: j2rong4cn <j2rong@qq.com>
Co-authored-by: Copilot <copilot@github.com>
2026-04-30 14:03:24 +08:00
ZRHan 9033b5502d feat(s3): implement Getter interface (#1790)
* feat(s3): implement Getter interface

* update path

* rm root
2026-04-29 13:51:06 +08:00
Seven 07506b003e feat(115_open): implement Getter interface (#1811)
* feat(115_open): implement Getter interface

* chore(115_open): get parentPath move to init
2026-04-29 13:50:41 +08:00
MadDogOwner 2d2d9ae213 fix(drivers/wps): correct account relevant handling (#2415)
* fix(drivers/wps): correct account modes handling

Signed-off-by: MadDogOwner <xiaoran@xrgzs.top>

* feat(drivers/wps): enhance GetDetails for business account

Co-authored-by: Copilot <copilot@github.com>
Signed-off-by: MadDogOwner <xiaoran@xrgzs.top>

---------

Signed-off-by: MadDogOwner <xiaoran@xrgzs.top>
Co-authored-by: Copilot <copilot@github.com>
2026-04-27 22:19:03 +08:00
MadDogOwner 376638978a fix(drivers/wps): implement driver.GetRooter interface (#2414)
* fix(drivers/wps): implement driver.GetRooter interface

* fix(drivers/wps): add User-Agent and Referer headers in Link method

* fix(drivers/wps): removing NoOverwriteUpload field

---------

Signed-off-by: MadDogOwner <xiaoran@xrgzs.top>
2026-04-27 21:13:44 +08:00
MadDogOwner 29ec90e8e8 refactor(drivers/wps): remove resolveCache (#2411)
* refactor(drivers/wps): remove resolveCache

Signed-off-by: MadDogOwner <xiaoran@xrgzs.top>

* fix(drivers/wps): add a small helper that unwraps model.ObjUnwrap

Co-authored-by: Copilot <copilot@github.com>
Signed-off-by: MadDogOwner <xiaoran@xrgzs.top>

* fix(drivers/wps): correct misspell

Signed-off-by: MadDogOwner <xiaoran@xrgzs.top>

---------

Signed-off-by: MadDogOwner <xiaoran@xrgzs.top>
Co-authored-by: Copilot <copilot@github.com>
2026-04-27 17:33:05 +08:00
MadDogOwner ece1518eac fix(drivers): add headers in Link methods (#2401)
* fix(drivers): add headers in Link methods

Signed-off-by: MadDogOwner <xiaoran@xrgzs.top>
2026-04-26 15:17:40 +08:00
MadDogOwner 331f575c17 fix(drivers/139): check cdnSwitch before returning cdnUrl in personalGetLink (#2379)
Signed-off-by: MadDogOwner <xiaoran@xrgzs.top>
2026-04-19 09:54:17 +08:00
MadDogOwner e11b8a82e7 fix(drivers/cloudreve_v4): remove token check for share (#2274)
Fixed the issue of token verification for shared links.
2026-04-04 18:43:08 +08:00
Seven 9e49adc353 fix(drivers/openlist): pass through frontend refresh flag (#2307)
* fix(drivers/openlist): pass through frontend refresh flag
* fix(drivers/openlist): gate refresh flag forwarding by config
2026-04-03 15:41:25 +08:00
Pikachu Ren 9fdba3a730 feat(drivers/123_open): support 123 official app api (#2293)
* feat(driver): support 123 official app api

* fix(123_open): migrate api refresh to token.go

Signed-off-by: MadDogOwner <xiaoran@xrgzs.top>

* fix(drivers/123_open): trigger proactive refresh with client credentials

* fix(drivers/123_open): use client-credential token endpoint for local refresh

Keep renewapi parsing for expires_in and map it to internal expiry time handling.

* fix(drivers/123_open): limit proactive refresh to client credentials

* fix(drivers/123_open): allow renewapi refresh token proactive init

* fix(drivers/123_open): update API address to use renewapi endpoint

* fix(drivers/123_open): simplify token refresh parsing

* fix(drivers/123_open): unify token expiration to expiredAt

---------

Signed-off-by: MadDogOwner <xiaoran@xrgzs.top>
Co-authored-by: MadDogOwner <xiaoran@xrgzs.top>
Co-authored-by: Suyunmeng <Susus0175@proton.me>
Co-authored-by: Suyunjing <suyunmeng@oplist.org.cn>
2026-04-03 15:23:26 +08:00
Elegant1E e41b683efb feat(drivers): add doubao_new driver (#2114) 2026-03-23 17:19:45 +08:00
Copilot f3428e65bc fix(net): honor proxy settings when uploading to 115/115 Open/PikPak OSS (#2222)
* Initial plan

* fix: honor HTTPS proxy for OSS uploads

Co-authored-by: jyxjjj <16695261+jyxjjj@users.noreply.github.com>

* Honor HTTPS proxy settings for 115/115 Open/PikPak OSS uploads

Co-authored-by: jyxjjj <16695261+jyxjjj@users.noreply.github.com>

* revert

* chore

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: jyxjjj <16695261+jyxjjj@users.noreply.github.com>
Co-authored-by: jyxjjj <773933146@qq.com>
2026-03-16 22:15:00 +08:00
Roy 5eaef96078 fix(azure): remove properties and fix prefix (#2209)
Remove properties from azure blob response

fix azure blob prefix filter: prefix should be empty if it is "/"
2026-03-09 21:25:30 +08:00
MadDogOwner 795a18b565 feat(drivers/thunder*): implement GetDetails (#2113)
Signed-off-by: MadDogOwner <xiaoran@xrgzs.top>
2026-02-21 15:21:05 +08:00
mkitsdts e0ee737080 fix(driver/wps): fetch all files via multiple API invocations (#2139)
fix(driver/wps): wps list all files in one request
2026-02-19 14:48:43 +08:00
LXY 0673a74302 chore(typo): fix typo in UpdateFileReq field name (#2133)
Fix typo in UpdateFileReq field name

ref: https://github.com/OpenListTeam/115-sdk-go/pull/3

Signed-off-by: LXY <767763591@qq.com>
2026-02-16 22:57:43 +08:00
jenfonro a8d1c0ddbf fix(‎drivers/quark_uc_tv) : Update error code judgment (#2080)
* fix error code

* add ErrorInfo check
2026-02-08 21:15:00 +08:00
gdm257 a121f861dc feat(drivers/123open): support sha1 reuse api (#2089)
* feat(drivers/123open): support sha1 reuse api

* fix(drivers/123open): fix typos
2026-02-08 14:01:26 +08:00
Shelton Zhu 5d9fc8359d fix(115_share): adjust 115 share driver for official API update (#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
2026-02-02 18:43:26 +08:00
Chaloemchai f542187654 fix(drivers/teldrive): enhance file listing and upload functionality with pagination and random chunk naming (#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 <175728472+Copilot@users.noreply.github.com>
Signed-off-by: Chaloemchai <chaloemchai.yy@gmail.com>

---------

Signed-off-by: Chaloemchai <chaloemchai.yy@gmail.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-02-01 20:39:25 +08:00
mkitsdts 27732ccc88 fix(drivers/quark): apply html escaping in quark (#2046)
* fix(drivers/quark): apply html escaping in quark
2026-01-29 21:30:17 +08:00
MadDogOwner 29fcf5904a fix(drivers/cloudreve_v4): add IsFolder attribute to Getter response (#2035)
* fix(drivers/cloudreve_v4): add IsFolder attribute to Getter response

Signed-off-by: MadDogOwner <xiaoran@xrgzs.top>

* refactor(drivers/cloudreve_v4): implement File.fileToObject method

Signed-off-by: MadDogOwner <xiaoran@xrgzs.top>

* fix(drivers/cloudreve_v4): implement 404 not found for getter

Signed-off-by: MadDogOwner <xiaoran@xrgzs.top>

---------

Signed-off-by: MadDogOwner <xiaoran@xrgzs.top>
2026-01-28 19:30:52 +08:00
KirCute f0e53d18a8 fix(drivers/alias): default sort & substitute link (#1917)
* fix(drivers/alias): default sort & substitute link

* fix

* fix
2026-01-26 19:31:09 +08:00
Rui Huang a2573fb285 fix(drivers/seafile): object not found when RootFolderPath != "/" (#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 <hhkorm@gmail.com>
Co-authored-by: j2rong4cn <j2rong@qq.com>
2026-01-25 17:00:32 +08:00
hcrgm 031b719bb0 perf(baidu_netdisk): reduce the number of file listing requests (#2016)
* 本优化减少了百度网盘驱动下文件列表的请求次数,能加快文件浏览速度。此前只要文件夹下有至少一个文件,都会至少发出2次列表请求。

Signed-off-by: hcrgm <hcrgm@qq.com>
2026-01-25 16:47:03 +08:00
Cp0204 02aec71383 fix(driver/quark_uc): Fix display of non-compliant filenames (#2000) 2026-01-20 19:30:44 +08:00
MadDogOwner fca993a830 feat(drivers/cloudreve): implement GetDetails (#1960) 2026-01-20 00:49:00 +08:00
KirCute f057846e01 feat(drivers): add autoindex driver (#1978)
* feat(drivers): add autoindex driver

* fix

* add NoUpload

Signed-off-by: MadDogOwner <xiaoran@xrgzs.top>

* add TestParseSize

Signed-off-by: MadDogOwner <xiaoran@xrgzs.top>

* go mod tidy

Signed-off-by: MadDogOwner <xiaoran@xrgzs.top>

* use base.RestyClient

Signed-off-by: MadDogOwner <xiaoran@xrgzs.top>

* fix: support evaluate size and modified time

* fix apache

* perf

* feat: support ignore size and modified time

* rename driver

---------

Signed-off-by: MadDogOwner <xiaoran@xrgzs.top>
Co-authored-by: MadDogOwner <xiaoran@xrgzs.top>
2026-01-17 20:08:32 +08:00
Seven ea4b5e3251 fix(drivers/strm): delete extra local directories in sync mode (#1980) 2026-01-16 15:52:04 +08:00
KirCute 378e37b082 fix(drivers/github): failed to get objs (#1915)
fix(drivers/github): failed get objs
2026-01-16 12:07:27 +08:00
MadDogOwner 5c82f55200 feat(drivers/cloudreve_v4): implement Getter interface (#1937)
feat(cloudreve_v4): implement Getter interface

Signed-off-by: MadDogOwner <xiaoran@xrgzs.top>
2026-01-16 12:05:53 +08:00
KirCute b553dc35b6 fix(drivers/ftp): failed to get objs (#1948)
fix(drivers/ftp): failed get objs
2026-01-16 12:04:55 +08:00
KirCute 85c69d853f fix(fs): panic when failed to get storage details (#1964) 2026-01-13 22:01:35 +08:00
MadDogOwner c6bd437242 feat(drivers/webdav): add support for 302 redirects (#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 <xiaoran@xrgzs.top>
2026-01-11 15:15:42 +08:00
KirCute e192149480 fix(drivers/alist_v3): failed to unmarshal MeResp (#1931) 2026-01-08 10:54:14 +08:00
TwoOnefour 0d99e16b59 fix(cloudreve): Manually set path to avoid empty path (#1933) 2026-01-08 10:53:09 +08:00
KirCute 744dbd5e26 feat(drivers): support getting disk usage of some drivers (#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
2026-01-08 10:47:22 +08:00
Seven 7088fa1f69 chore(strm): remove redundant param (#1929) 2026-01-07 18:34:33 +08:00
mcxiedidi 642acf8bca feat(123pan): add offline download (#1911)
* feat(123网盘): 添加123网盘离线下载功能

- 新增123网盘离线下载实现
- 添加相关API接口和常量配置
- 在路由和工具集中集成123网盘支持

* refactor(offline_download): 重构123网盘离线下载状态处理和类型定义

- 将离线下载相关类型定义从util.go移至types.go
- 更新状态获取api

* 移除了备选方案(/offline_download/task/status)
2026-01-04 23:13:38 +08:00
KirCute 747993e2ca feat(drivers/mega): support permanently deleting files (#1913) 2026-01-04 23:07:59 +08:00
KirCute 1f9a7e3a91 feat(drivers/mega): support getting disk usage (#1903)
* feat(drivers/mega): support getting disk usage

* fix
2026-01-04 13:26:26 +08:00
MadDogOwner 874234449b fix(doubao_share): use new download info (#1890)
fix(doubao_share): update file URL retrieval to use new download info structure

Signed-off-by: MadDogOwner <xiaoran@xrgzs.top>
2026-01-01 22:29:03 +08:00
Edward 5fe267089a fix(123_open): infinite recursive call (#1854)
fix(123_open): token refresh logic

Fix token handling logic to avoid deadlock. Token method took reference of Alist's implementation.
2025-12-31 00:46:54 +08:00
Tron 0612271732 fix(driver): fix file copy failure to 123pan due to incorrect etag (#1874) 2025-12-29 23:54:33 +08:00