j2rong4cn
054db9f5eb
fix(op): use oldName variable for cache updates in Rename function ( #2570 )
2026-06-03 19:56:55 +08:00
j2rong4cn
9282e8ef09
fix(cache,mem): replace finalizers with runtime.AddCleanup ( #2535 )
2026-06-01 01:50:20 +08:00
j2rong4cn
9eae62581a
refactor(cache)!: extract hybrid_cache package ( #2477 )
...
* refactor(HybridCache)!: extract hybrid_cache package and rename cache_threshold to auto_memory_limit
* split HybridCache and stores into internal/hybrid_cache package
* introduce BackingStore abstraction with BufferStore and FileStore
* rename CacheThreshold to AutoMemoryLimit in config/env/bootstrap
* update stream/request integration and related tests
* rename singleFileCache and MultiFileCache to singleFileStore and MultiFileStore
* refactor(HybridCache): improve memory management strategies in NewHybridCache
* rename
* alias hybrid_cache to hcache
* omments
2026-05-18 15:11:39 +08:00
j2rong4cn
219564b56c
refactor(func): replace GinWithValue with GinAppendValues ( #2475 )
2026-05-15 17:59:53 +08:00
j2rong4cn
ea19bed247
fix(setting): handle delete of setting item with empty key ( #2131 )
2026-05-14 23:23:44 +08:00
j2rong4cn and Suyunmeng
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
j2rong4cn
c7c0cfaeb7
fix(fsmanage): improve path validation ( #2437 )
...
* fix(fsmanage): improve path validation in FsMove, FsCopy, and FsRemove functions
2026-05-06 11:58:00 +08:00
j2rong4cn
d3a6b06566
perf: replace strings.Split with strings.SplitSeq ( #2441 )
2026-05-04 13:05:07 +08:00
j2rong4cn
d31e1a333d
feat(model): add object mask support and enhance cache/task handling ( #1743 )
2025-12-11 15:10:42 +08:00
j2rong4cn
96cd714385
refactor(op): remove automatic Path assignment ( #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 方法到多个驱动
2025-12-03 00:55:40 +08:00
j2rong4cn
9835afc645
refactor: improve upload handling ( #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
2025-11-27 19:34:03 +08:00
j2rong4cn
a1f1f98f94
refactor(stream): simplify code ( #1590 )
...
* refactor(stream): simplify Close method and update SeekableStream to use RangeReader interface
* refactor(stream): improve RangeRead comments for clarity
2025-11-06 20:06:48 +08:00
j2rong4cn
174eae802a
perf(stream): optimize CacheFullAndWriter for better memory management ( #1584 )
...
* perf(stream): optimize CacheFullAndWriter for better memory management
* fix(stream): ensure proper seek handling in CacheFullAndWriter for improved data integrity
2025-11-05 12:16:09 +08:00
j2rong4cn
6de15b6310
feat(stream): enhance GetRangeReaderFromLink rate limiting ( #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
2025-11-04 23:56:09 +08:00
j2rong4cn
2edc446ced
feat(stream): support using temporary files as large buffer ( #1399 )
...
feat(stream): refactor StreamSectionReader to support using temporary files as large buffer
2025-10-01 18:43:20 +08:00
j2rong4cn and Copilot
c3c7983f7b
perf(sync-closers): improve Close method ( #1395 )
...
Signed-off-by: j2rong4cn <36783515+j2rong4cn@users.noreply.github.com >
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2025-10-01 18:06:10 +08:00
j2rong4cn
da0c734aa3
fix(net): unable to pass HttpStatusCode ( #1397 )
2025-10-01 00:16:36 +08:00
j2rong4cn
9d3da44a99
fix(chunk): ensure NumListWorkers is set during Chunk initialization ( #1396 )
2025-09-30 21:39:19 +08:00
j2rong4cn and KirCute
8f17d35ed5
feat(chunk): add ChunkPrefix and ChunkLargeFileOnly options ( #1321 )
...
* fix(chunk): move chunk existence check to Link method
* feat(chunk): add chunk prefix configuration
* feat(chunk): add chunk_large_file_only configuration
* feat(chunk): concurrently list chunk folder
* refactor(chunk): remove unnecessary mutex for result handling in List method
---------
Co-authored-by: KirCute <kircute@foxmail.com >
2025-09-30 21:26:06 +08:00
j2rong4cn
ea09ce4b8f
fix(fs): improve error handling in op.Get ( #1323 )
2025-09-29 21:38:34 +08:00
j2rong4cn
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
j2rong4cn
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
j2rong4cn and Copilot
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
j2rong4cn and Copilot
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
j2rong4cn
317d190b77
fix(ftp): create a new connection for each download ( #989 )
2025-08-06 20:35:01 +08:00
j2rong4cn
9ac0484bc0
perf(ftp): improve concurrent Link response; fix alias/local driver issues ( #974 )
2025-08-06 13:32:37 +08:00
j2rong4cn and MadDogOwner
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
j2rong4cn
1208bd0a83
fix(fs): nil interface not equal to nil ( #971 )
...
https://go.dev/doc/faq#nil_error
2025-08-03 23:51:11 +08:00
j2rong4cn
6b096bcad4
fix(fs): deadlock when get link error ( #963 )
2025-08-02 17:49:53 +08:00
j2rong4cn
4e9c30f49d
feat(fs): full support webdav cross-driver copy and move ( #823 )
...
* fix(fs): restore webdav cross-driver copy and move
* fix bug
* webdav支持复制、移动 文件夹
* 优化
* 。
2025-07-26 00:27:46 +08:00
j2rong4cn
a20c2020f8
fix(cmd): optimize parse of command flag --data ( #777 )
...
* Fix (cmd): optimize parse of command flag `--data`
* DBFile
* 优化
* os.Getwd()
2025-07-22 10:51:28 +08:00
j2rong4cn
74d32fd4d7
fix(simplehttp): logic bug when unable to parse file name ( #761 )
2025-07-20 14:13:30 +08:00
j2rong4cn
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
j2rong4cn
2a4c546a8b
feat: default settings api ( #716 )
...
* feat: default settings api
* fix logic bug
* chore
2025-07-14 23:41:34 +08:00
j2rong4cn and Copilot
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
j2rong4cn
ffb6c2a180
refactor: optimize stream, link, and resource management ( #486 )
...
* refactor: optimize stream, link, and resource management
* Link.MFile改为io.ReadSeeker类型
* fix (crypt): read on closed response body
* chore
* chore
* chore
2025-07-03 10:39:34 +08:00
j2rong4cn
e83f8e197a
feat(offline-download): SimpleHttp: download stream direct upload ( #523 )
...
* feat(offline-download): stream download to upload
* 重命名stream_put为upload_download_stream
* chore
2025-07-02 18:47:16 +08:00
j2rong4cn
b4997e7a7e
Revert "fix(fs): update objs cache" ( close #511 )
...
Revert "fix(fs): update objs cache (#507 )"
This reverts commit f26892ac3c .
2025-07-01 20:33:44 +08:00
j2rong4cn
103abc942e
refactor: pass api_url through context ( #457 )
...
* refactor: pass `api_url` through context
* 移除 LinkArgs.HttpReq
* pref(alias): 减少不必要下载代理
* 修复bug
* net: 支持1并发 分片下载
2025-06-30 15:48:05 +08:00
j2rong4cn
23cfe8090b
pref(net): improve concurrent read and write buffer ( #416 )
...
* pref(net): improve concurrent read and write buffer
* chore
2025-06-27 15:18:11 +08:00
j2rong4cn
4f5cabc725
feat: add h2c for http server ( #8294 )
...
* feat: add h2c for http server
* chore(config): add EnableH2c option
2025-04-12 17:02:51 +08:00
j2rong4cn
a2f266277c
fix(net): unexpected write ( #8291 close #8281 )
2025-04-12 17:01:52 +08:00
j2rong4cn and MadDogOwner
ddffacf07b
perf: optimize IO read/write usage ( #8243 )
...
* perf: optimize IO read/write usage
* .
* Update drivers/139/driver.go
Co-authored-by: MadDogOwner <xiaoran@xrgzs.top >
---------
Co-authored-by: MadDogOwner <xiaoran@xrgzs.top >
2025-04-12 16:55:31 +08:00
j2rong4cn
31c55a2adf
fix(archive): unable to preview ( #8248 )
...
* fix(archive): unable to preview
* fix bug
2025-04-03 20:41:05 +08:00
j2rong4cn
a6304285b6
fix: revert "refactor(net): pass request header" ( #8269 )
...
https://github.com/AlistGo/alist/pull/8031/commits/5be50e77d9ad8d67e343aa7e9380bcdd2506ae8f
2025-04-03 20:35:52 +08:00
j2rong4cn
b4e6ab12d9
refactor: FilterReadMeScripts ( #8154 close #8150 )
...
* refactor: FilterReadMeScripts
* .
2025-03-18 22:02:33 +08:00
j2rong4cn
0126af4de0
fix(crypt): premature close of MFile ( #8132 close #8119 )
...
* fix(crypt): premature close of MFile
* refactor
2025-03-15 00:13:30 +08:00
j2rong4cn
4145734c18
refactor(net): pass request header ( #8031 close #8008 )
...
* refactor(net): pass request header
* feat(proxy): add `Etag` to response header
* refactor
2025-03-01 18:35:34 +08:00
j2rong4cn
027edcbe53
refactor(patch): execute all patches in dev version ( #7807 )
2025-01-27 20:49:24 +08:00
j2rong4cn and KirCute_ECT
5c5d8378e5
fix(archive): unable to preview ( #7843 )
...
* fix(archive): unrecognition zip
* feat(archive): add tree for zip meta
* fix bug
* refactor(archive): meta cache time use Link Expiration first
* feat(archive): return sort policy in meta (#2 )
* refactor
* perf(archive): reduce new network requests
---------
Co-authored-by: KirCute_ECT <951206789@qq.com >
2025-01-27 20:08:56 +08:00
j2rong4cn and hpy hs
2be0c3d1a0
feat(alias): add DownloadConcurrency and DownloadPartSize option ( #7829 )
...
* fix(net): goroutine logic bug (AlistGo/alist#7215 )
* Fix goroutine logic bug
* Fix bug
---------
Co-authored-by: hpy hs <hshpy.pengyu@gmail.com >
* perf(net): sequential and dynamic concurrency
* fix(net): incorrect error return
* feat(alias): add `DownloadConcurrency` and `DownloadPartSize` option
* feat(net): add `ConcurrencyLimit`
* pref(net): create `chunk` on demand
* refactor
* refactor
* fix(net): `r.Closers.Add` has no effect
* refactor
---------
Co-authored-by: hpy hs <hshpy.pengyu@gmail.com >
2025-01-27 20:08:39 +08:00
j2rong4cn
ab22cf8233
feat: add Reference interface to driver ( #7805 )
...
* feat: add `Reference` interface to driver
* feat(123_share): support reference 123pan
2025-01-18 23:26:58 +08:00
j2rong4cn
365fc40dfe
fix: static page to limit request method ( #7745 close #7667 )
2024-12-30 22:49:18 +08:00
j2rong4cn
db5c601cfe
fix(crypt): add sign to thumbnail ( #6611 )
2024-12-25 21:13:54 +08:00
j2rong4cn
db99224126
perf: Speed of database initialization ( #7694 )
...
* perf: 优化非sqlite3数据库时初始化慢的问题
* refactor
2024-12-25 21:08:22 +08:00
j2rong4cn
4c0cffd29b
fix(net): close of closed channel ( #7529 )
2024-11-21 22:39:14 +08:00
j2rong4cn
87caaf2459
fix: out of order when database is not sqlite3 ( #6560 )
2024-08-03 13:11:09 +08:00
j2rong4cn
29fe49fb87
fix(alias): Support forced refresh of file list ( #6562 )
2024-06-16 16:59:10 +08:00
j2rong4cn
1b14d33b9f
fix(alist_v3): use net/http for uploading ( #6616 close #6613 )
2024-06-16 16:55:49 +08:00
j2rong4cn
5f60b51cf8
feat: add proxy_range option for 139Yun Alias AList V3 ( #6496 )
2024-05-22 23:31:42 +08:00
j2rong4cn
037850bbd5
feat(alias): support Rename and Remove ( #6478 )
...
* feat(alias): support `Rename` and `Remove`
* fix(alias): `autoFlatten` not updated after editing
* feat(alias): add `protect_same_name` option
2024-05-22 09:27:48 +08:00