d3bc6321f4
chore(build): update Go version to 1.25.0 across workflows and build scripts ( #1290 )
...
build: update Go version to 1.25.0 across workflows and build scripts
fixes #1286
beta
2025-09-16 18:44:29 +08:00
cbbb5ad231
fix(stream): http chucked upload issue ( #1152 )
...
* fix(stream): http chucked upload issue
* fix(stream): use MmapThreshold
* fix(stream): improve caching mechanism and handle size=0 case
* fix bug
* fix(buffer): optimize ReadAt method for improved performance
* fix(upload): handle Content-Length and File-Size headers for better size management
* fix(189pc): 移除重复限速
* fix(upload): handle negative file size during streaming uploads
* fix(upload): update header key from File-Size to X-File-Size for size retrieval
---------
Co-authored-by: j2rong4cn <j2rong@qq.com >
2025-09-15 19:36:16 +08:00
c1d03c5bcc
fix(security): zip slip ( #1228 )
...
* fix(security): Zip Slip
* chore:remove repeat clean
* fix: archives,iso9660 and rardecode module
---------
Co-authored-by: ILoveScratch <ilovescratch@foxmail.com >
2025-09-15 13:25:21 +08:00
61a8ed515f
fix(123): add get and list hash info ( #1278 )
2025-09-14 21:36:54 +08:00
bbb7c06504
feat(alias): support pass through provider ( #1269 )
2025-09-14 21:36:38 +08:00
8bbdb272d4
docs(readme): extend driver list with newest support ( #1271 )
2025-09-13 20:41:17 +08:00
c15ae94307
feat(189PC,189TV): add refreshToken and qrcode login ( #1205 )
...
### Key Changes
- **189PC**: Add QR code login and refresh token support
- **189TV**: Add session refresh mechanism and fix TempUuid persistence issue
- **Both**: Implement session keep-alive with cron jobs (5min interval)
### Features
- QR code authentication for 189PC as alternative to password login
- Automatic token refresh to avoid frequent re-authentication
- Session keep-alive to maintain long-term connections
- Retry logic with max attempts to prevent infinite loops
### Fixes
- Fixed 189TV TempUuid causing storage corruption on QR code reload
- Enhanced error handling for token expiration scenarios
2025-09-13 13:59:47 +08:00
f1a5048558
feat(drivers): add cnb_releases ( #1033 )
...
* feat(drivers): add cnb_releases
* feat(cnb_release): implement reference
* refactor(cnb_releases): get release info by ID instead of tag name
* feat(cnb_releases): add option to use tag name instead of release name
* fix(cnb_releases): set default root and improve release info retrieval
* feat(cnb_releases): implement Put
* perf(cnb_release): use io.Pipe to stream file upload
* perf(cnb_releases): add context timeout for file upload request
* feat(cnb_releases): implement Remove
* feat(cnb_releases): implement MakeDir
* feat(cnb_releases): implement Rename
* feat(cnb_releases): require repo and token in Addition
* chore(cnb_releases): remove unused code
* Revert 'perf(cnb_release): use io.Pipe to stream file upload'
* perf(cnb_releases): optimize upload with MultiReader
* feat(cnb_releases): add DefaultBranch
---------
Co-authored-by: ILoveScratch <ilovescratch@foxmail.com >
2025-09-11 18:11:32 +08:00
1fe26bff9a
feat(local): auto create recycle dir if not exists ( #1244 )
2025-09-10 20:57:21 +08:00
433dcd156b
fix(ci): add tag_name to upload assets step ( #1234 )
...
fix(release): add tag_name to upload assets step
2025-09-06 22:51:05 +08:00
e97f0a289e
feat(cloudreve_v4): enhance token management ( #1171 )
...
* fix(cloudreve_v4): improve error handling in request method
Signed-off-by: MadDogOwner <xiaoran@xrgzs.top >
* feat(cloudreve_v4): enhance token management with expiration checks and refresh logic
Signed-off-by: MadDogOwner <xiaoran@xrgzs.top >
* feat(cloudreve_v4): add JWT structures for access and refresh tokens; validate access token on initialization
Signed-off-by: MadDogOwner <xiaoran@xrgzs.top >
* fix(cloudreve_v4): improve error messages
Signed-off-by: MadDogOwner <xiaoran@xrgzs.top >
---------
Signed-off-by: MadDogOwner <xiaoran@xrgzs.top >
v4.1.2
2025-09-04 19:41:41 +08:00
89f35170b3
fix(fs): clear cache after directory rename to ensure consistency ( #1193 )
...
Clear cache after renaming the directory.
2025-09-01 18:47:54 +08:00
8188fb2d7d
fix(123open): get direct link ( #1185 )
...
* fix(123open): correct query parameter name from 'fileId' to 'fileID' in getDirectLink function
Signed-off-by: MadDogOwner <xiaoran@xrgzs.top >
* fix(123open): change SpaceTempExpr type from 'string' to 'int64' in UserInfoResp struct
Signed-off-by: MadDogOwner <xiaoran@xrgzs.top >
* fix(123open): comment out unused fields in UserInfoResp struct
Signed-off-by: MadDogOwner <xiaoran@xrgzs.top >
* fix(123open): add getUID method and cache UID
Signed-off-by: MadDogOwner <xiaoran@xrgzs.top >
---------
Signed-off-by: MadDogOwner <xiaoran@xrgzs.top >
2025-08-31 15:47:38 +08:00
87cf95f50b
fix(139): refactor part upload logic ( #1184 )
...
* fix(139): refactor part upload logic
Signed-off-by: MadDogOwner <xiaoran@xrgzs.top >
* fix(139): handle upload errors
Signed-off-by: MadDogOwner <xiaoran@xrgzs.top >
* fix(139): sort upload parts by PartNumber before uploading
Signed-off-by: MadDogOwner <xiaoran@xrgzs.top >
* fix(139): improve error handling
Signed-off-by: MadDogOwner <xiaoran@xrgzs.top >
* fix(139): add validation for upload part index to prevent out of bounds errors
Signed-off-by: MadDogOwner <xiaoran@xrgzs.top >
---------
Signed-off-by: MadDogOwner <xiaoran@xrgzs.top >
2025-08-31 15:47:12 +08:00
8ab26cb823
fix(123open): change DirectLink type from 'boolean' to 'bool' ( #1180 )
...
Signed-off-by: MadDogOwner <xiaoran@xrgzs.top >
2025-08-29 19:06:37 +08:00
5880c8e1af
fix(189tv): use rate-limited upload stream in OldUpload function ( #1176 )
...
* fix(189tv): use rate-limited upload stream in OldUpload function
* fix(189tv): wrap tempFile with io.NopCloser to prevent premature closure in OldUpload function
* .
2025-08-29 16:01:50 +08:00
14bf4ecb4c
fix(share): support custom proxy url ( #1130 )
...
* feat(share): support custom proxy url
* fix(share): count access
* fix: maybe a path traversal vulnerability?
2025-08-28 22:11:19 +08:00
04a5e58781
fix(server): can't edit .md source files ( #1159 )
...
* fix(server): can't edit .md source files
* chore
* add ignore direct link args
2025-08-28 16:19:57 +08:00
bbd4389345
fix(wopan): use fixed timezone for parsing time ( #1170 )
...
fix(wopan): update getTime function to use fixed timezone for parsing
Signed-off-by: MadDogOwner <xiaoran@xrgzs.top >
2025-08-28 13:02:02 +08:00
f350ccdf95
fix(189pc): sliceSize must not be equal to fileSize ( #1169 )
...
* fix(189pc): sliceSize not equal to fileSize
Signed-off-by: MadDogOwner <xiaoran@xrgzs.top >
* Update comment for sliceSize parameter
Signed-off-by: MadDogOwner <xiaoran@xrgzs.top >
---------
Signed-off-by: MadDogOwner <xiaoran@xrgzs.top >
2025-08-28 11:32:40 +08:00
4f2de9395e
feat(degoo): token improvement ( #1149 )
...
* Update driver.go
Signed-off-by: Caspian <app@caspian.im >
* Update meta.go
Signed-off-by: Caspian <app@caspian.im >
* Update util.go
Signed-off-by: Caspian <app@caspian.im >
* Update util.go
Signed-off-by: Caspian <app@caspian.im >
* Update util.go
Signed-off-by: Caspian <app@caspian.im >
* Update util.go
Signed-off-by: MadDogOwner <xiaoran@xrgzs.top >
* make account optional
* ensure username and password
Signed-off-by: MadDogOwner <xiaoran@xrgzs.top >
---------
Signed-off-by: Caspian <app@caspian.im >
Signed-off-by: MadDogOwner <xiaoran@xrgzs.top >
Co-authored-by: MadDogOwner <xiaoran@xrgzs.top >
2025-08-26 01:22:59 +08:00
b0dbbebfb0
feat(drivers): add Teldrive driver ( #1116 )
...
https://github.com/tgdrive/teldrive
https://teldrive-docs.pages.dev/docs/api
实现:
* copy
* move
* link (302 share and local proxy)
* chunked uploads
* rename
未实现:
- openlist扫码登陆
- refresh token
https://github.com/OpenListTeam/OpenList-Docs/pull/155
* feat(Teldrive): Add driver Teldrive
* fix(teldrive): force webproxy and memory optimized
* chore(teldrive): go fmt
* chore(teldrive): remove TODO
* chore(teldrive): organize code
* feat(teldrive): add UseShareLink option and support 302
* fix(teldrive): standardize API path construction
* fix(teldrive): trim trailing slash from Address in Init method
* chore(teldrive): update help text for UseShareLink field in Addition struct
* fix(teldrive): set 10 MiB as default chunk size
---------
Co-authored-by: MadDogOwner <xiaoran@xrgzs.top >
Co-authored-by: ILoveScratch <ilovescratch@foxmail.com >
2025-08-25 01:34:08 +08:00
0c27b4bd47
docs(contributing): update guidelines ( #983 )
...
[skip ci]
* docs(contributing): update guidelines
* docs(contributing): clarify fork
* docs(contributing): sync translation
Co-authored-by: Yinan Qin <39023210+elysia-best@users.noreply.github.com >
Signed-off-by: MadDogOwner <xiaoran@xrgzs.top >
* docs(contributing): add label and cc reminder
* docs(contributing): remove ensure new branch from checklist
* docs(contributing): replace generic GitHub URLs with user-specific ones
* docs(contributing): make branch deletion after PR merge optional
* docs(contributing): keep --recurse-submodules
---------
Signed-off-by: MadDogOwner <xiaoran@xrgzs.top >
Co-authored-by: Yinan Qin <39023210+elysia-best@users.noreply.github.com >
2025-08-24 20:13:11 +08:00
736cd9e5f2
fix(quark): fix getTranscodingLink ( #1136 )
...
The first video info may not contain url
* fix(quark): fix getTranscodingLink
* fix(quark_tv): fix getTranscodingLink
2025-08-24 19:55:10 +08:00
c7a603c926
fix(115): fix get 115 app version ( #1137 )
2025-08-24 19:50:21 +08:00
a28d6d5693
fix(123_open): fix token refresh ( #1121 )
2025-08-23 23:01:41 +08:00
e59d2233e2
feat(drivers): add Degoo driver ( #1097 )
...
* Create driver.go
Signed-off-by: CaspianGUAN <app@caspian.im >
* Create util.go
Signed-off-by: CaspianGUAN <app@caspian.im >
* Create types.go
Signed-off-by: CaspianGUAN <app@caspian.im >
* Create meta.go
Signed-off-by: CaspianGUAN <app@caspian.im >
* Update drivers/degoo/driver.go
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
Signed-off-by: CaspianGUAN <app@caspian.im >
* Update drivers/degoo/driver.go
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
Signed-off-by: CaspianGUAN <app@caspian.im >
* Update driver.go
Signed-off-by: CaspianGUAN <app@caspian.im >
* Update meta.go
Signed-off-by: CaspianGUAN <app@caspian.im >
* Update types.go
Signed-off-by: CaspianGUAN <app@caspian.im >
* Update util.go
Signed-off-by: CaspianGUAN <app@caspian.im >
* Update driver.go
Signed-off-by: CaspianGUAN <app@caspian.im >
* Update util.go
Signed-off-by: CaspianGUAN <app@caspian.im >
* Update drivers/degoo/util.go
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
Signed-off-by: CaspianGUAN <app@caspian.im >
* Update util.go
Signed-off-by: CaspianGUAN <app@caspian.im >
* refactor(degoo): add Degoo driver integration and update API handling
* fix(degoo): apply suggestions
---------
Signed-off-by: CaspianGUAN <app@caspian.im >
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
Co-authored-by: MadDogOwner <xiaoran@xrgzs.top >
2025-08-23 22:47:02 +08:00
01914a06ef
refactor(ci): add permissions check at docker's entrypoint ( #1128 )
...
Co-authored-by: MadDogOwner <xiaoran@xrgzs.top >
2025-08-22 19:35:48 +08:00
6499374d1c
fix(deps): update 115driver to v1.1.1 (close SheltonZhu/115driver#57) ( #1115 )
2025-08-20 21:33:21 +08:00
b054919d5c
feat(ilanzou): add support for rapid upload and fix duplication handling ( #1065 )
...
* feat(ilanzou): add support for rapid upload token handling
* feat(ilanzou): add NoOverwriteUpload option
2025-08-19 19:19:44 +08:00
048ee9c2e5
feat(server): adapting #1099 to #991 ( #1102 )
2025-08-19 15:48:59 +08:00
23394548ca
feat(123_open): add DirectLink
option ( #1045 )
...
* feat(123_open): add `UseDirectLink` option
* feat(123_open): update rate limit rules
* fix(123_open): update api
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
Signed-off-by: MadDogOwner <xiaoran@xrgzs.top >
* feat(123_open): enhance direct link functionality with private key and expiration
* refactor(123_open): use UUID for random generation
---------
Signed-off-by: MadDogOwner <xiaoran@xrgzs.top >
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2025-08-19 15:23:10 +08:00
b04677b806
feat(server): add error page and status code ( #1099 )
2025-08-19 15:18:12 +08:00
e4c902dd93
feat(share): support more secure file sharing ( #991 )
...
提供一种类似大多数网盘的文件分享操作,这种分享方式可以通过强制 Web 代理隐藏文件源路径,可以设置分享码、最大访问数和过期时间,并且不需要启用 guest 用户。
在全局设置中可以调整:
- 是否强制 Web 代理
- 是否允许预览
- 是否允许预览压缩文件
- 分享文件后,点击“复制链接”按钮复制的内容
前端部分:OpenListTeam/OpenList-Frontend#156
文档部分:OpenListTeam/OpenList-Docs#130
Close #183
Close #526
Close #860
Close #892
Close #1079
* feat(share): support more secure file sharing
* feat(share): add archive preview
* fix(share): fix some bugs
* feat(openlist_share): add openlist share driver
* fix(share): lack unwrap when get virtual path
* fix: use unwrapPath instead of path for virtual file name comparison
* fix(share): change request method of /api/share/list from GET to Any
* fix(share): path traversal vulnerability in sharing path check
* 修复分享alias驱动的文件 没开代理时无法获取URL
* fix(sharing): update error message for sharing root link extraction
---------
Co-authored-by: Suyunmeng <69945917+Suyunmeng@users.noreply.github.com >
Co-authored-by: j2rong4cn <j2rong@qq.com >
2025-08-19 15:10:02 +08:00
5d8bd258c0
refactor(docker): reduce docker image size ( #1091 )
...
* fix(docker): reduce image size
* refactor(docker): update user and group creation
* Update Dockerfile
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
Signed-off-by: MadDogOwner <xiaoran@xrgzs.top >
---------
Signed-off-by: MadDogOwner <xiaoran@xrgzs.top >
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2025-08-19 10:27:33 +08:00
08c5283c8c
feat(docker): Update docker-compose configuration ( #1081 )
...
* feat(docker): Update docker-compose configuration
* Update docker-compose.yml
Co-authored-by: MadDogOwner <xiaoran@xrgzs.top >
Signed-off-by: huancun _- <huancun@hc26.org >
---------
Signed-off-by: huancun _- <huancun@hc26.org >
Co-authored-by: MadDogOwner <xiaoran@xrgzs.top >
v4.1.1
2025-08-18 14:29:59 +08:00
10a14f10cd
fix(docker): improve startup process and SIGTERM handling ( #1089 )
...
* fix(ci): Modify the way of star OpenList.
* fix(ci): start runsvdir
2025-08-18 11:13:05 +08:00
f86ebc52a0
refactor(123_open): improve upload ( #1076 )
...
* refactor(123_open): improve upload
* optimize buffer initialization for multipart form
* 每次重试生成新的表单
* .
2025-08-17 14:25:23 +08:00
016ed90efa
feat(stream): fast buffer freeing for large cache ( #1053 )
...
Signed-off-by: j2rong4cn <36783515+j2rong4cn@users.noreply.github.com >
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2025-08-16 17:19:52 +08:00
d76407b201
fix(dropbox): incorrect path error during upload ( #1052 )
...
* Fix incorrect path error during upload on Dropbox
* Add RootNamespaceId to the config for direct modification
* Refactor Dropbox header logic: extract JSON marshaling into helper method
* Fix Dropbox: replace marshalToJSONString with utils.Json.MarshalToString
2025-08-16 14:18:02 +08:00
5de6b660f2
fix(terabox): user not exists error ( #1056 )
...
* fix user location error when upload file
2025-08-15 21:25:57 +08:00
71ada3b656
fix(ci-sync): fix workflow for syncing Repository ( #1062 )
2025-08-15 18:48:55 +08:00
dc42f0e226
[skip ci]fix(ci): update sync workflow ( #1061 )
2025-08-15 18:36:52 +08:00
74bf9f6467
[skip ci]feat(sync): add workflow to sync GitHub repository ( #1060 )
...
feat(sync): add workflow to sync GitHub repository to Gitee
2025-08-15 18:12:29 +08:00
d0c22a1ecb
feat(ci): add the default user for docker image ( #1036 )
...
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2025-08-12 09:51:40 +08:00
57fceabcf4
perf(stream): improve file stream range reading and caching mechanism ( #1001 )
...
* perf(stream): improve file stream range reading and caching mechanism
* 。
* add bytes_test.go
* fix(stream): handle EOF and buffer reading more gracefully
* 注释
* refactor: update CacheFullAndWriter to accept pointer for UpdateProgress
* update tests
* Update drivers/google_drive/util.go
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
Signed-off-by: j2rong4cn <36783515+j2rong4cn@users.noreply.github.com >
* 更优雅的克隆Link
* 修复stream已缓存但无法重复读取
* 将Bytes类型重命名为Reader
* 修复栈溢出
* update tests
---------
Signed-off-by: j2rong4cn <36783515+j2rong4cn@users.noreply.github.com >
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2025-08-11 23:41:22 +08:00
8c244a984d
refactor(assets): migrate to resource domain ( #975 )
...
* refactor(assets): migrate to resource domain
* feat(bootstrap): add migration value for logo and favicon settings
2025-08-10 09:57:33 +08:00
df479ba806
fix(aliyundrive_open): limit rate for every request ( close #724 ) ( #1011 )
...
* fix(aliyundrive_open): limit rate for `Remove` and `MakeDir`; reduce limit for `List` and `Link` (close #724 )
* Update drivers/aliyundrive_open/driver.go
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
Signed-off-by: 火星大王 <34576789+huoxingdawang@users.noreply.github.com >
* Update drivers/aliyundrive_open/driver.go
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
Signed-off-by: 火星大王 <34576789+huoxingdawang@users.noreply.github.com >
* fix(aliyundrive_open): limit rate for every request
* fix(aliyundrive_open): fix limiter not work on reference driver
* fix(aliyundrive_open): typo
* fix(aliyundrive_open): limiter not set to nil after free
* fix(aliyundrive_share): limit rate for every request
---------
Signed-off-by: 火星大王 <34576789+huoxingdawang@users.noreply.github.com >
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2025-08-10 09:55:20 +08:00
5ae8e96237
feat(123_open): update Put method to return model.Obj ( #1008 )
...
* feat(123_open): update Put method to return model.Obj
* fix(123_open): declear time zones
* chore(123_open): fix typo
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
Signed-off-by: MadDogOwner <xiaoran@xrgzs.top >
* fix(123_open): use fixed timezone
* fix(123_open): implement PutResult interface for Open123 driver
---------
Signed-off-by: MadDogOwner <xiaoran@xrgzs.top >
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
Co-authored-by: Suyunmeng <69945917+Suyunmeng@users.noreply.github.com >
2025-08-09 15:09:12 +08:00
aa0ced47b0
fix(webdav): Handle HEAD requests for directories with appropriate headers ( #1015 )
...
Implement handling of HEAD requests for directories by setting the correct Content-Type and Content-Length headers.
2025-08-09 13:57:09 +08:00