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
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
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
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
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
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
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
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
93c06213d4
feat(local): add directory size support ( #624 )
...
* feat(local): add directory size support
* fix(local): fix and improve directory size calculation
* style(local): fix code style
* style(local): fix code style
* style(local): fix code style
* fix(local): refresh directory size when force refresh
Signed-off-by: 我怎么就不是一只猫呢? <26274059+dezhishen@users.noreply.github.com >
* fix:(local): Avoid traversing the parent's parent, which leads to an endless loop
Signed-off-by: 我怎么就不是一只猫呢? <26274059+dezhishen@users.noreply.github.com >
* fix(local:) refresh dir size only enabled
Signed-off-by: 我怎么就不是一只猫呢? <26274059+dezhishen@users.noreply.github.com >
* fix(local): logical error && add RecalculateDirSize && cleaner code for int64
* feat(local): add Benchmark for CalculateDirSize
* refactor(local): 优化移动中对于错误的判断。
---------
Signed-off-by: 我怎么就不是一只猫呢? <26274059+dezhishen@users.noreply.github.com >
Co-authored-by: 我怎么就不是一只猫呢? <26274059+dezhishen@users.noreply.github.com >
2025-08-08 16:59:16 +08:00
317d190b77
fix(ftp): create a new connection for each download ( #989 )
2025-08-06 20:35:01 +08:00
52d7d819ad
feat(lenovonas_share): add thumb ( #986 )
2025-08-06 17:34:43 +08:00
0483e0f868
feat(driver_strm): also shown some files with strm ( #969 )
...
* feat(driver_strm): Also shown some files with strm
Allow user set some file types that need to shown with strm, usually subtitles
Most of code was copy and managed from drivers/alias
* 优化
* 优化
* 。
* 添加注释
---------
Co-authored-by: j2rong4cn <j2rong@qq.com >
Co-authored-by: j2rong4cn <36783515+j2rong4cn@users.noreply.github.com >
2025-08-06 15:40:48 +08:00
08dae4f55f
feat(123_open): update upload api v2 ( #976 )
2025-08-06 15:27:13 +08:00
9ac0484bc0
perf(ftp): improve concurrent Link response; fix alias/local driver issues ( #974 )
2025-08-06 13:32:37 +08:00
8cf15183a0
perf: optimize upload ( #554 )
...
* pref(115,123): optimize upload
* chore
* aliyun_open, google_drive
* fix bug
* chore
* cloudreve, cloudreve_v4, onedrive, onedrive_app
* chore(conf): add `max_buffer_limit` option
* 123pan multithread upload
* doubao
* google_drive
* chore
* chore
* chore: 计算分片数量的代码
* MaxBufferLimit自动挡
* MaxBufferLimit自动挡
* 189pc
* errorgroup添加Lifecycle
* 查缺补漏
* Conf.MaxBufferLimit单位为MB
* 。
---------
Co-authored-by: MadDogOwner <xiaoran@xrgzs.top >
2025-08-05 21:42:54 +08:00
05ff7908f2
fix(strm): encoded path is ineffective ( #951 )
2025-08-02 00:23:18 +08:00
a5a22e7085
fix(local): Treat junction as directory in Windows. ( #809 )
...
Treat junction as directory in Windows.
2025-07-31 13:54:56 +08:00
54ae7e6d9b
feat(115_open): Add GetObjInfo to accelerate getting link ( #888 )
...
* feat(115_open): Add GetObjInfo to accelerate getting link
* feat(fs): use cache directly when cache exist
2025-07-31 11:20:02 +08:00
991da7d87f
feat(strm): add local mode ( #885 )
...
* feat(strm): add local mode
* Update drivers/strm/meta.go
Co-authored-by: MadDogOwner <xiaoran@xrgzs.top >
Signed-off-by: Seven <53081179+Seven66677731@users.noreply.github.com >
* feat(strm): local mode add sign
---------
Signed-off-by: Seven <53081179+Seven66677731@users.noreply.github.com >
Co-authored-by: MadDogOwner <xiaoran@xrgzs.top >
2025-07-31 11:18:59 +08:00
a498091aef
fix(123&&123_share): fix link request header referer ( #915 )
2025-07-31 10:10:38 +08:00
976c82bb2b
fix(drivers): update time-related fields to int64 ( #913 )
...
- In doubao/types.go:
- Change LastUpdateTime from int to int64
- Change UserCreateTime from int to int64
- In doubao_share/types.go:
- Change CreateTime and UpdateTime from int to int64 in ShareInfo and FilePath
- In quark_uc/types.go:
- Change UpdateTime from int to int64 in TranscodingResp
These changes ensure consistent and accurate representation of timestamp data across the project.
2025-07-31 10:10:32 +08:00
e0b3a611ba
feat(thunderx,pikpak): add offline download support for ThunderX; add ctx to specific PikPak functions ( #879 )
...
* feat(thunderx,pikpak): add offline download support for ThunderX; add ctx to specific PikPak functions
* Update internal/offline_download/tool/download.go
Co-authored-by: MadDogOwner <xiaoran@xrgzs.top >
Signed-off-by: 花月喵梦 <152958106+nekohy@users.noreply.github.com >
---------
Signed-off-by: 花月喵梦 <152958106+nekohy@users.noreply.github.com >
Co-authored-by: MadDogOwner <xiaoran@xrgzs.top >
2025-07-29 09:46:28 +08:00
0ee31a3f36
fix(crypt): wrong ContentLength
2025-07-25 19:55:22 +08:00
23bddf991e
feat(drivers): enable local sorting for cloudreve, ilanzou ( #840 )
...
* feat(cloudreve): enable local sorting
* feat(ilanzou): enable local sorting
2025-07-25 18:01:19 +08:00
e93ab76036
feat(task-group): introduce TaskGroupCoordinator for coordinated task execution ( #721 )
...
* feat(task): add task hook,batch task
refactor(move): move use CopyTask
* Update internal/task/batch_task/refresh.go
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
Signed-off-by: Seven <53081179+Seven66677731@users.noreply.github.com >
* fix: upload task allFinish judge
* Update internal/task/batch_task/refresh.go
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
Signed-off-by: Seven <53081179+Seven66677731@users.noreply.github.com >
* feat: enhance concurrency safety
* 优化代码
* 解压缩
* 修复死锁
* refactor(move): move as task
* 重构,优化
* .
* 优化,修复bug
* .
* 修复bug
* feat: add task retry judge
* 代理Task.SetState函数来判断Task的生命周期
* chore: use OnSucceeded、OnFailed、OnBeforeRetry functions
* 优化
* 优化,去除重复代码
* .
* 优化
* .
* webdav
* Revert "fix(fs):After the file is copied or moved, flush the cache of the directory that was copied or moved to."
This reverts commit 5f03edd683
.
---------
Signed-off-by: Seven <53081179+Seven66677731@users.noreply.github.com >
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
Co-authored-by: j2rong4cn <j2rong@qq.com >
2025-07-24 16:15:24 +08:00
4c069fddd6
fix(terabox): file upload error ( #733 )
...
* fix(terabox):fix file upload error failed to create file errno 10
Signed-off-by: yuyamionini <46483865+yuyamionini@users.noreply.github.com >
* fix(terabox):fix file upload error failed to create file errno 10
Signed-off-by: yuyamionini <46483865+yuyamionini@users.noreply.github.com >
* replace the goto statement with the retry-go package
Signed-off-by: yuyamionini <46483865+yuyamionini@users.noreply.github.com >
* Update util.go
Signed-off-by: yuyamionini <46483865+yuyamionini@users.noreply.github.com >
* Update util.go
Signed-off-by: yuyamionini <46483865+yuyamionini@users.noreply.github.com >
* go fmt
---------
Signed-off-by: yuyamionini <46483865+yuyamionini@users.noreply.github.com >
Co-authored-by: MadDogOwner <xiaoran@xrgzs.top >
2025-07-23 23:42:12 +08:00
a92b5eb929
refactor(cloudreve): use retry-go
for net/http
uploads ( #773 )
...
* refactor(cloudreve): use retry-go for uploads
* refactor(cloudreve_v4): use retry-go for uploads
* refactor(onedrive): use retry-go for uploads
* refactor(onedrive_app): use retry-go for uploads
* chore(onedrive_app): remove unnecessary error handling for host retrieval
* feat(cloudreve): move read logic inside retry block
* feat(cloudreve_v4): move read logic inside retry block
* feat(onedrive): move read logic inside retry block
* feat(onedrive_app): move read logic inside retry block
2025-07-22 10:25:04 +08:00
5a0d8ee1b8
feat(proxy): add disable proxy sign ( #764 )
...
* feat(proxy): add disable proxy sign
* Update driver.go
* GenerateDownProxyUrl
* .
* Update internal/op/driver.go
Signed-off-by: j2rong4cn <36783515+j2rong4cn@users.noreply.github.com >
* .
---------
Signed-off-by: j2rong4cn <36783515+j2rong4cn@users.noreply.github.com >
Co-authored-by: j2rong4cn <j2rong@qq.com >
Co-authored-by: j2rong4cn <36783515+j2rong4cn@users.noreply.github.com >
2025-07-21 17:03:08 +08:00
012e51c551
fix(cloudreve_v4): remove deprecated authn check for login ( #767 )
...
* fix(cloudreve_v4): disable authn check for login
* chore(cloudreve_v4): update site login config fields
2025-07-21 15:53:10 +08:00
59ec1dbc9b
feat(lenovonas_share): add option to not show root directory ( #772 )
2025-07-21 14:38:10 +08:00
6bb28d13f9
fix(quark): set the transcoding link ContentLength to the correct size
2025-07-20 16:40:32 +08:00
86324d2d6b
fix(net): ensure accurate content-length in response ( #749 )
...
* fix(fs): ensure accurate content-length in http2 requests
Chrome browsers were unable to preview thumbnails, reporting an
'ERR_HTTP_2_PROTOCOL_ERROR'. This was caused by an incorrect
content-length header in the server's response for thumbnail images.
This commit corrects the content-length calculation, allowing
Chrome and other compliant clients to render thumbnails correctly.
* fix(net): ensure accurate content-length in response
* 补缺
* .
---------
Co-authored-by: zhiqiang.huang <zhiqiang.tech@gmail.com >
Co-authored-by: j2rong4cn <j2rong@qq.com >
2025-07-19 20:36:27 +08:00
e8d45398d6
feat(quark_uc_tv): add streaming link api ( #728 )
2025-07-17 14:24:16 +08:00
0c461991f9
chore: standardize context keys with custom ContextKey type ( #697 )
...
* chore: standardize context keys with custom ContextKey type
* fix bug
* 使用Request.Context
2025-07-14 23:55:17 +08:00
cc01b410a4
perf(link): optimize concurrent response ( #641 )
...
* fix(crypt): bug caused by link cache
* perf(crypt,mega,halalcloud,quark,uc): optimize concurrent response link
* chore: 删除无用代码
* ftp
* 修复bug;资源释放
* 添加SyncClosers
* local,sftp,smb
* 重构,优化,增强
* Update internal/stream/util.go
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
Signed-off-by: j2rong4cn <36783515+j2rong4cn@users.noreply.github.com >
* chore
* chore
* 优化,修复bug
* .
---------
Signed-off-by: j2rong4cn <36783515+j2rong4cn@users.noreply.github.com >
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2025-07-12 17:57:54 +08:00
a84ffb96e9
chore(ci):Simplify the build process ( #686 )
...
* refactor(ci):Minify build files
2025-07-11 20:30:31 +08:00
19c6b6f930
feat(115_open): add offline download ( #683 )
2025-07-11 20:17:54 +08:00
3838ef0663
feat(traffic): update progress when caching file ( #646 )
...
* feat(traffic): update progress when caching file
* 调整参数位置和命名
---------
Co-authored-by: j2rong4cn <j2rong@qq.com >
2025-07-08 21:41:45 +08:00
9e610af114
fix(115_open): upload progress error ( #637 )
2025-07-07 18:39:09 +08:00
0177177238
fix(crypt): pass refresh list request ( close #609 )
2025-07-06 13:20:42 +08:00
4af16ab009
fix(115open):fix limit_rate save ( #601 )
2025-07-06 12:07:07 +08:00
92f396df10
chore(quark_uc): webdav_policy
default to native_proxy
2025-07-04 19:06:40 +08:00
288ba2fcda
chore(strm): remove excess parameters ( #587 )
2025-07-04 17:50:37 +08:00