mirror of
https://github.com/OpenListTeam/OpenList.git
synced 2025-11-25 03:15:19 +08:00
* 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>
88 lines
4.5 KiB
Go
88 lines
4.5 KiB
Go
package drivers
|
|
|
|
import (
|
|
_ "github.com/OpenListTeam/OpenList/v4/drivers/115"
|
|
_ "github.com/OpenListTeam/OpenList/v4/drivers/115_open"
|
|
_ "github.com/OpenListTeam/OpenList/v4/drivers/115_share"
|
|
_ "github.com/OpenListTeam/OpenList/v4/drivers/123"
|
|
_ "github.com/OpenListTeam/OpenList/v4/drivers/123_link"
|
|
_ "github.com/OpenListTeam/OpenList/v4/drivers/123_open"
|
|
_ "github.com/OpenListTeam/OpenList/v4/drivers/123_share"
|
|
_ "github.com/OpenListTeam/OpenList/v4/drivers/139"
|
|
_ "github.com/OpenListTeam/OpenList/v4/drivers/189"
|
|
_ "github.com/OpenListTeam/OpenList/v4/drivers/189_tv"
|
|
_ "github.com/OpenListTeam/OpenList/v4/drivers/189pc"
|
|
_ "github.com/OpenListTeam/OpenList/v4/drivers/alias"
|
|
_ "github.com/OpenListTeam/OpenList/v4/drivers/aliyundrive"
|
|
_ "github.com/OpenListTeam/OpenList/v4/drivers/aliyundrive_open"
|
|
_ "github.com/OpenListTeam/OpenList/v4/drivers/aliyundrive_share"
|
|
_ "github.com/OpenListTeam/OpenList/v4/drivers/azure_blob"
|
|
_ "github.com/OpenListTeam/OpenList/v4/drivers/baidu_netdisk"
|
|
_ "github.com/OpenListTeam/OpenList/v4/drivers/baidu_photo"
|
|
_ "github.com/OpenListTeam/OpenList/v4/drivers/chaoxing"
|
|
_ "github.com/OpenListTeam/OpenList/v4/drivers/chunk"
|
|
_ "github.com/OpenListTeam/OpenList/v4/drivers/cloudreve"
|
|
_ "github.com/OpenListTeam/OpenList/v4/drivers/cloudreve_v4"
|
|
_ "github.com/OpenListTeam/OpenList/v4/drivers/cnb_releases"
|
|
_ "github.com/OpenListTeam/OpenList/v4/drivers/crypt"
|
|
_ "github.com/OpenListTeam/OpenList/v4/drivers/degoo"
|
|
_ "github.com/OpenListTeam/OpenList/v4/drivers/doubao"
|
|
_ "github.com/OpenListTeam/OpenList/v4/drivers/doubao_share"
|
|
_ "github.com/OpenListTeam/OpenList/v4/drivers/dropbox"
|
|
_ "github.com/OpenListTeam/OpenList/v4/drivers/febbox"
|
|
_ "github.com/OpenListTeam/OpenList/v4/drivers/ftp"
|
|
_ "github.com/OpenListTeam/OpenList/v4/drivers/github"
|
|
_ "github.com/OpenListTeam/OpenList/v4/drivers/github_releases"
|
|
_ "github.com/OpenListTeam/OpenList/v4/drivers/google_drive"
|
|
_ "github.com/OpenListTeam/OpenList/v4/drivers/google_photo"
|
|
_ "github.com/OpenListTeam/OpenList/v4/drivers/halalcloud"
|
|
_ "github.com/OpenListTeam/OpenList/v4/drivers/halalcloud_open"
|
|
_ "github.com/OpenListTeam/OpenList/v4/drivers/ilanzou"
|
|
_ "github.com/OpenListTeam/OpenList/v4/drivers/ipfs_api"
|
|
_ "github.com/OpenListTeam/OpenList/v4/drivers/kodbox"
|
|
_ "github.com/OpenListTeam/OpenList/v4/drivers/lanzou"
|
|
_ "github.com/OpenListTeam/OpenList/v4/drivers/lenovonas_share"
|
|
_ "github.com/OpenListTeam/OpenList/v4/drivers/local"
|
|
_ "github.com/OpenListTeam/OpenList/v4/drivers/mediafire"
|
|
_ "github.com/OpenListTeam/OpenList/v4/drivers/mediatrack"
|
|
_ "github.com/OpenListTeam/OpenList/v4/drivers/mega"
|
|
_ "github.com/OpenListTeam/OpenList/v4/drivers/misskey"
|
|
_ "github.com/OpenListTeam/OpenList/v4/drivers/mopan"
|
|
_ "github.com/OpenListTeam/OpenList/v4/drivers/netease_music"
|
|
_ "github.com/OpenListTeam/OpenList/v4/drivers/onedrive"
|
|
_ "github.com/OpenListTeam/OpenList/v4/drivers/onedrive_app"
|
|
_ "github.com/OpenListTeam/OpenList/v4/drivers/onedrive_sharelink"
|
|
_ "github.com/OpenListTeam/OpenList/v4/drivers/openlist"
|
|
_ "github.com/OpenListTeam/OpenList/v4/drivers/openlist_share"
|
|
_ "github.com/OpenListTeam/OpenList/v4/drivers/pikpak"
|
|
_ "github.com/OpenListTeam/OpenList/v4/drivers/pikpak_share"
|
|
_ "github.com/OpenListTeam/OpenList/v4/drivers/proton_drive"
|
|
_ "github.com/OpenListTeam/OpenList/v4/drivers/quark_open"
|
|
_ "github.com/OpenListTeam/OpenList/v4/drivers/quark_uc"
|
|
_ "github.com/OpenListTeam/OpenList/v4/drivers/quark_uc_tv"
|
|
_ "github.com/OpenListTeam/OpenList/v4/drivers/s3"
|
|
_ "github.com/OpenListTeam/OpenList/v4/drivers/seafile"
|
|
_ "github.com/OpenListTeam/OpenList/v4/drivers/sftp"
|
|
_ "github.com/OpenListTeam/OpenList/v4/drivers/smb"
|
|
_ "github.com/OpenListTeam/OpenList/v4/drivers/strm"
|
|
_ "github.com/OpenListTeam/OpenList/v4/drivers/teambition"
|
|
_ "github.com/OpenListTeam/OpenList/v4/drivers/teldrive"
|
|
_ "github.com/OpenListTeam/OpenList/v4/drivers/terabox"
|
|
_ "github.com/OpenListTeam/OpenList/v4/drivers/thunder"
|
|
_ "github.com/OpenListTeam/OpenList/v4/drivers/thunder_browser"
|
|
_ "github.com/OpenListTeam/OpenList/v4/drivers/thunderx"
|
|
_ "github.com/OpenListTeam/OpenList/v4/drivers/url_tree"
|
|
_ "github.com/OpenListTeam/OpenList/v4/drivers/uss"
|
|
_ "github.com/OpenListTeam/OpenList/v4/drivers/virtual"
|
|
_ "github.com/OpenListTeam/OpenList/v4/drivers/webdav"
|
|
_ "github.com/OpenListTeam/OpenList/v4/drivers/weiyun"
|
|
_ "github.com/OpenListTeam/OpenList/v4/drivers/wopan"
|
|
_ "github.com/OpenListTeam/OpenList/v4/drivers/yandex_disk"
|
|
)
|
|
|
|
// All do nothing,just for import
|
|
// same as _ import
|
|
func All() {
|
|
|
|
}
|