* feat(driver): add wps drive support
* feat(driver): add wps drive support
* fix(wps): update personal mode string to English
Signed-off-by: MadDogOwner <xiaoran@xrgzs.top>
* fix(wps): remove trailing slash from drive origin URL
Signed-off-by: MadDogOwner <xiaoran@xrgzs.top>
* fix(wps): correct order of options in mode selection
Signed-off-by: MadDogOwner <xiaoran@xrgzs.top>
* fix(wps): enable local sort and upload overwrite
Signed-off-by: MadDogOwner <xiaoran@xrgzs.top>
* 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 <xiaoran@xrgzs.top>
Co-authored-by: MadDogOwner <xiaoran@xrgzs.top>
* 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
* 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 <773933146@qq.com>
Co-authored-by: ShenLin <773933146@qq.com>
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
* 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
* 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 <noreply@imoutoheaven.org>
Co-authored-by: jyxjjj <773933146@qq.com>
* fix(driver/123): initialization the Platform field
Signed-off-by: MoYan <1561515308@qq.com>
* Fix formatting of Platform field in Pan123
Signed-off-by: MoYan <1561515308@qq.com>
---------
Signed-off-by: MoYan <1561515308@qq.com>
* 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 <j2rong@qq.com>
* refactor(stream): simplify Close method and update SeekableStream to use RangeReader interface
* refactor(stream): improve RangeRead comments for clarity
* fix(baidu_netdisk): improve upload experience
* fix(typo): URL should be uppercase, apply suggestion from @Copilot
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Signed-off-by: ShenLin <773933146@qq.com>
* fix(typo): URL should be uppercase, apply suggestion from @Copilot
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Signed-off-by: ShenLin <773933146@qq.com>
* 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 <773933146@qq.com>
Signed-off-by: jenfonro <799170122@qq.com>
Co-authored-by: ShenLin <773933146@qq.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: jenfonro <799170122@qq.com>
* perf(stream): optimize CacheFullAndWriter for better memory management
* fix(stream): ensure proper seek handling in CacheFullAndWriter for improved data integrity
* support proxy
* debug
* debug2
* del debug
* add proxy configuration with env var fallback
* comments to en
* refactor(env): fallback env
---------
Co-authored-by: jyxjjj <773933146@qq.com>
* 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(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 <175728472+Copilot@users.noreply.github.com>
Signed-off-by: D@' 3z K!7 <99719341+Da3zKi7@users.noreply.github.com>
* 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 <99719341+Da3zKi7@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: KirCute <951206789@qq.com>
Co-authored-by: j2rong4cn <j2rong@qq.com>
Co-authored-by: KirCute <kircute@foxmail.com>
* 新增清真云Open驱动,支持最新的轻量SDK
* Change Go version in go.mod
Downgrade Go version from 1.24.2 to 1.23.4
Signed-off-by: zzzhr1990 <zzzhr@hotmail.com>
* 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 <175728472+Copilot@users.noreply.github.com>
Signed-off-by: zzzhr1990 <zzzhr@hotmail.com>
* 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 <zzzhr@hotmail.com>
* Update meta.go
Change required for RefreshToken, If using a personal API approach, the RefreshToken is not required.
Signed-off-by: zzzhr1990 <zzzhr@hotmail.com>
* remove debug logs
* bump halalcloud SDK version
* fix unnecessary params
* Update drivers/halalcloud_open/driver_init.go
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Signed-off-by: zzzhr1990 <zzzhr@hotmail.com>
* Fixed spelling errors; changed hardcoded retry parameters to constants.
* remove pointer in get link function in utils.go
---------
Signed-off-by: zzzhr1990 <zzzhr@hotmail.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: KirCute <951206789@qq.com>
* 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
* 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
* fix(ftp-server): cannot get obj in uploading state inconsistency window
* fix
* fix: duplicate obj when upload completed but client access does not
* fix
* feat: support stat remove and move
* chore(announcement): change default announcement text for better clarity
- Improve site announcement style for a more polished look
- Adjust default value to avoid unclear meaning with only repo or single link
* feat(style): add driver icons and disk usage
* feat(driver): add disk usage for 115_open, 123_open, aliyundrive_open and baidu_netdisk
* feat(driver): add disk usage for crypt, sftp and smb
* chore: clean unused variable
* feat(driver): add disk usage for cloudreve_v4
Signed-off-by: MadDogOwner <xiaoran@xrgzs.top>
* fix(local): disk label check when getting disk usage
* feat(style): return details when accessing the manage page
---------
Signed-off-by: MadDogOwner <xiaoran@xrgzs.top>
Co-authored-by: MadDogOwner <xiaoran@xrgzs.top>
### 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
* 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>
* 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>
* fix(189tv): use rate-limited upload stream in OldUpload function
* fix(189tv): wrap tempFile with io.NopCloser to prevent premature closure in OldUpload function
* .
https://github.com/tgdrive/teldrivehttps://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>
* 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
You must check all the following, otherwise your issue may be closed directly.
You must confirm, agree, and check all the following, otherwise your issue will definitely be closed directly.
Or you can go to the [discussions](https://github.com/OpenListTeam/OpenList/discussions).
options:
- label:|
@@ -59,6 +59,14 @@ body:
label:Bug Description (required)
validations:
required:true
- type:textarea
id:logs
attributes:
label:Logs (required)
description:|
Please copy and paste any relevant log output or screenshots. (You may mask sensitive fields) [Guide](https://doc.oplist.org/faq/howto#how-to-quickly-locate-bugs)
validations:
required:true
- type:textarea
id:config
attributes:
@@ -67,12 +75,6 @@ body:
Please provide your `OpenList` application's configuration file and a screenshot of the relevant storage configuration. (You may mask sensitive fields)
validations:
required:true
- type:textarea
id:logs
attributes:
label:Logs (optional)
description:|
Please copy and paste any relevant log output or screenshots. (You may mask sensitive fields) [Guide](https://doc.oplist.org/faq/howto#how-to-quickly-locate-bugs)
Provide a general summary of your changes in the Title above.
The PR title must start with `feat(): `, `docs(): `, `fix(): `, `style(): `, or `refactor(): `, `chore(): `. For example: `feat(component): add new feature`.
If it spans multiple components, use the main component as the prefix and enumerate in the title, describe in the body.
It's suggested to sign your commits. See: [How to sign commits](https://docs.github.com/en/authentication/managing-commit-signature-verification/signing-commits)
## Submit a pull request
Please make sure your code has been formatted with `go fmt` or [prettier](https://prettier.io/) before submitting.
Push your branch to your `openlist` fork and open a pull request against the `main` branch.
## Merge your pull request
Your pull request will be merged after review. Please wait for the maintainer to merge your pull request after review.
At least 1 approving review is required by reviewers with write access. You can also request a review from maintainers.
## Delete your branch
(Optional) After your pull request is merged, you can delete your branch.
---
Thank you for your contribution! Let's make OpenList better together!
Some files were not shown because too many files have changed in this diff
Show More
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.