2025-07-01 09:54:50 +08:00
|
|
|
module github.com/OpenListTeam/OpenList/v4
|
2021-10-25 18:53:59 +08:00
|
|
|
|
2025-03-17 00:52:09 +08:00
|
|
|
go 1.23.4
|
2022-06-06 21:48:53 +08:00
|
|
|
|
|
|
|
|
require (
|
2025-07-24 10:27:36 +08:00
|
|
|
github.com/Azure/azure-sdk-for-go/sdk/azcore v1.18.1
|
2025-07-24 16:06:10 +08:00
|
|
|
github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.6.2
|
2025-11-24 14:14:53 +08:00
|
|
|
github.com/KarpelesLab/reflink v1.0.2
|
2025-11-10 19:08:50 +08:00
|
|
|
github.com/KirCute/zip v1.0.1
|
2025-06-30 21:26:42 +08:00
|
|
|
github.com/OpenListTeam/go-cache v0.1.0
|
2025-06-14 16:04:13 +08:00
|
|
|
github.com/OpenListTeam/sftpd-openlist v1.0.1
|
2025-11-07 19:11:11 +08:00
|
|
|
github.com/OpenListTeam/tache v0.2.1
|
2025-06-20 17:41:16 +08:00
|
|
|
github.com/OpenListTeam/times v0.1.0
|
2025-06-30 21:26:42 +08:00
|
|
|
github.com/OpenListTeam/wopan-sdk-go v0.1.5
|
2025-07-24 16:05:20 +08:00
|
|
|
github.com/ProtonMail/go-crypto v1.3.0
|
2025-11-07 19:11:11 +08:00
|
|
|
github.com/ProtonMail/gopenpgp/v2 v2.9.0
|
2025-08-20 21:33:21 +08:00
|
|
|
github.com/SheltonZhu/115driver v1.1.1
|
2024-01-09 17:14:31 +08:00
|
|
|
github.com/aliyun/aliyun-oss-go-sdk v3.0.2+incompatible
|
2023-05-27 20:23:36 +08:00
|
|
|
github.com/avast/retry-go v3.0.0+incompatible
|
2025-07-04 11:26:36 +08:00
|
|
|
github.com/aws/aws-sdk-go v1.55.7
|
2025-07-11 10:24:50 +08:00
|
|
|
github.com/blevesearch/bleve/v2 v2.5.2
|
2023-07-09 18:15:04 +08:00
|
|
|
github.com/caarlos0/env/v9 v9.0.0
|
2025-07-24 10:25:09 +08:00
|
|
|
github.com/charmbracelet/bubbles v0.21.0
|
2025-07-24 16:05:20 +08:00
|
|
|
github.com/charmbracelet/bubbletea v1.3.6
|
2025-07-24 10:25:09 +08:00
|
|
|
github.com/charmbracelet/lipgloss v1.1.0
|
2024-08-19 23:30:08 +08:00
|
|
|
github.com/city404/v6-public-rpc-proto/go v0.0.0-20240817070657-90f8e24b653e
|
2025-09-29 23:26:56 +08:00
|
|
|
github.com/cloudsoda/go-smb2 v0.0.0-20250228001242-d4c70e6251cc
|
2025-07-24 16:21:03 +08:00
|
|
|
github.com/coreos/go-oidc v2.3.0+incompatible
|
2025-07-11 10:25:08 +08:00
|
|
|
github.com/deckarep/golang-set/v2 v2.8.0
|
2024-05-22 23:31:58 +08:00
|
|
|
github.com/dhowden/tag v0.0.0-20240417053706-3d75831295e8
|
2022-08-30 15:22:54 +08:00
|
|
|
github.com/disintegration/imaging v1.6.2
|
2025-07-04 11:26:53 +08:00
|
|
|
github.com/dlclark/regexp2 v1.11.5
|
2023-02-14 15:23:35 +08:00
|
|
|
github.com/dustinxie/ecc v0.0.0-20210511000915-959544187564
|
2025-07-24 10:26:39 +08:00
|
|
|
github.com/fclairamb/ftpserverlib v0.26.1-0.20250709223522-4a925d79caf6
|
2024-05-23 18:56:17 +08:00
|
|
|
github.com/foxxorcat/mopan-sdk-go v0.1.6
|
2023-11-05 22:41:14 +08:00
|
|
|
github.com/foxxorcat/weiyun-sdk-go v0.1.3
|
2025-07-04 11:20:51 +08:00
|
|
|
github.com/gin-contrib/cors v1.7.6
|
|
|
|
|
github.com/gin-gonic/gin v1.10.1
|
2025-07-11 10:26:44 +08:00
|
|
|
github.com/go-resty/resty/v2 v2.16.5
|
2025-07-24 10:05:44 +08:00
|
|
|
github.com/go-webauthn/webauthn v0.13.4
|
2025-07-04 11:26:11 +08:00
|
|
|
github.com/golang-jwt/jwt/v4 v4.5.2
|
2024-07-07 13:20:34 +08:00
|
|
|
github.com/google/uuid v1.6.0
|
2024-07-13 17:03:20 +08:00
|
|
|
github.com/gorilla/websocket v1.5.3
|
2025-10-14 16:03:42 +08:00
|
|
|
github.com/halalcloud/golang-sdk-lite v0.0.0-20251006164234-3c629727c499
|
2024-09-28 23:15:58 +08:00
|
|
|
github.com/hekmon/transmissionrpc/v3 v3.0.0
|
2025-11-07 19:11:11 +08:00
|
|
|
github.com/henrybear327/go-proton-api v1.0.0
|
2023-09-30 22:58:19 +08:00
|
|
|
github.com/ipfs/go-ipfs-api v0.7.0
|
2025-06-27 20:26:53 +08:00
|
|
|
github.com/itsHenry35/gofakes3 v0.0.8
|
2025-07-24 16:05:20 +08:00
|
|
|
github.com/jlaffaye/ftp v0.2.1-0.20240918233326-1b970516f5d3
|
2022-06-13 15:39:47 +08:00
|
|
|
github.com/json-iterator/go v1.1.12
|
2025-01-18 23:28:12 +08:00
|
|
|
github.com/kdomanski/iso9660 v0.4.0
|
2024-01-01 22:18:51 +08:00
|
|
|
github.com/maruel/natural v1.1.1
|
2025-07-31 11:24:22 +08:00
|
|
|
github.com/meilisearch/meilisearch-go v0.32.0
|
2025-07-02 15:35:13 +08:00
|
|
|
github.com/mholt/archives v0.1.3
|
2022-08-30 15:22:54 +08:00
|
|
|
github.com/natefinch/lumberjack v2.0.0+incompatible
|
2025-07-04 11:25:52 +08:00
|
|
|
github.com/ncw/swift/v2 v2.0.4
|
2022-06-13 15:39:47 +08:00
|
|
|
github.com/pkg/errors v0.9.1
|
2025-07-11 10:23:52 +08:00
|
|
|
github.com/pkg/sftp v1.13.9
|
2025-07-24 16:07:23 +08:00
|
|
|
github.com/pquerna/otp v1.5.0
|
2025-10-14 15:57:16 +08:00
|
|
|
github.com/quic-go/quic-go v0.54.1
|
2025-07-24 16:05:20 +08:00
|
|
|
github.com/rclone/rclone v1.70.3
|
2025-08-10 09:55:20 +08:00
|
|
|
github.com/shirou/gopsutil/v4 v4.25.5
|
2023-07-16 15:06:16 +08:00
|
|
|
github.com/sirupsen/logrus v1.9.3
|
2025-06-14 15:56:51 +08:00
|
|
|
github.com/spf13/afero v1.14.0
|
2025-07-24 16:05:20 +08:00
|
|
|
github.com/spf13/cobra v1.9.1
|
2024-12-10 20:17:46 +08:00
|
|
|
github.com/stretchr/testify v1.10.0
|
2025-06-27 21:31:50 +08:00
|
|
|
github.com/t3rm1n4l/go-mega v0.0.0-20241213151442-a19cff0ec7b5
|
2025-09-23 01:00:18 +08:00
|
|
|
github.com/tchap/go-patricia/v2 v2.3.3
|
2023-08-20 13:10:01 +08:00
|
|
|
github.com/u2takey/ffmpeg-go v0.5.0
|
2023-04-04 17:10:31 +08:00
|
|
|
github.com/upyun/go-sdk/v3 v3.0.4
|
2025-07-24 16:05:20 +08:00
|
|
|
github.com/winfsp/cgofuse v1.6.0
|
2025-06-27 21:27:02 +08:00
|
|
|
github.com/zzzhr1990/go-common-entity v0.0.0-20250202070650-1a200048f0d3
|
2025-07-24 10:05:44 +08:00
|
|
|
golang.org/x/crypto v0.40.0
|
2025-07-24 16:22:19 +08:00
|
|
|
golang.org/x/image v0.29.0
|
2025-07-24 16:06:10 +08:00
|
|
|
golang.org/x/net v0.42.0
|
2025-07-24 16:05:20 +08:00
|
|
|
golang.org/x/oauth2 v0.30.0
|
|
|
|
|
golang.org/x/time v0.12.0
|
2024-01-01 21:42:43 +08:00
|
|
|
google.golang.org/appengine v1.6.8
|
2024-01-01 19:55:31 +08:00
|
|
|
gopkg.in/ldap.v3 v3.1.0
|
2024-07-14 20:58:20 +08:00
|
|
|
gorm.io/driver/mysql v1.5.7
|
2024-07-17 12:21:54 +08:00
|
|
|
gorm.io/driver/postgres v1.5.9
|
2024-07-14 19:09:38 +08:00
|
|
|
gorm.io/driver/sqlite v1.5.6
|
2024-07-14 19:40:46 +08:00
|
|
|
gorm.io/gorm v1.25.11
|
2022-06-13 15:39:47 +08:00
|
|
|
)
|
|
|
|
|
|
2025-06-27 15:36:50 +08:00
|
|
|
require (
|
|
|
|
|
cloud.google.com/go/compute/metadata v0.7.0 // indirect
|
2025-07-24 10:27:36 +08:00
|
|
|
github.com/Azure/azure-sdk-for-go/sdk/internal v1.11.1 // indirect
|
feat(drivers): add ProtonDrive driver (#1368)
* 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>
2025-10-18 22:07:11 -06:00
|
|
|
github.com/ProtonMail/bcrypt v0.0.0-20211005172633-e235017c1baf // indirect
|
|
|
|
|
github.com/ProtonMail/gluon v0.17.1-0.20230724134000-308be39be96e // indirect
|
|
|
|
|
github.com/ProtonMail/go-mime v0.0.0-20230322103455-7d82a3887f2f // indirect
|
|
|
|
|
github.com/ProtonMail/go-srp v0.0.7 // indirect
|
|
|
|
|
github.com/PuerkitoBio/goquery v1.10.3 // indirect
|
2025-07-11 10:24:50 +08:00
|
|
|
github.com/RoaringBitmap/roaring/v2 v2.4.5 // indirect
|
feat(drivers): add ProtonDrive driver (#1368)
* 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>
2025-10-18 22:07:11 -06:00
|
|
|
github.com/andybalholm/cascadia v1.3.3 // indirect
|
|
|
|
|
github.com/bradenaw/juniper v0.15.3 // indirect
|
2025-07-24 10:25:09 +08:00
|
|
|
github.com/charmbracelet/colorprofile v0.2.3-0.20250311203215-f60798e515dc // indirect
|
|
|
|
|
github.com/charmbracelet/x/cellbuf v0.0.13-0.20250311204145-2c3ea96c31dd // indirect
|
2025-09-29 23:26:56 +08:00
|
|
|
github.com/cloudsoda/sddl v0.0.0-20250224235906-926454e91efc // indirect
|
2025-07-24 16:05:20 +08:00
|
|
|
github.com/coreos/go-systemd/v22 v22.5.0 // indirect
|
feat(drivers): add ProtonDrive driver (#1368)
* 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>
2025-10-18 22:07:11 -06:00
|
|
|
github.com/cronokirby/saferith v0.33.0 // indirect
|
2025-07-24 16:05:20 +08:00
|
|
|
github.com/ebitengine/purego v0.8.4 // indirect
|
feat(drivers): add ProtonDrive driver (#1368)
* 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>
2025-10-18 22:07:11 -06:00
|
|
|
github.com/emersion/go-message v0.18.2 // indirect
|
|
|
|
|
github.com/emersion/go-vcard v0.0.0-20241024213814-c9703dde27ff // indirect
|
2025-09-29 23:26:56 +08:00
|
|
|
github.com/geoffgarside/ber v1.2.0 // indirect
|
|
|
|
|
github.com/hashicorp/go-uuid v1.0.3 // indirect
|
|
|
|
|
github.com/jcmturner/aescts/v2 v2.0.0 // indirect
|
|
|
|
|
github.com/jcmturner/dnsutils/v2 v2.0.0 // indirect
|
|
|
|
|
github.com/jcmturner/gofork v1.7.6 // indirect
|
|
|
|
|
github.com/jcmturner/goidentity/v6 v6.0.1 // indirect
|
|
|
|
|
github.com/jcmturner/gokrb5/v8 v8.4.4 // indirect
|
|
|
|
|
github.com/jcmturner/rpc/v2 v2.0.3 // indirect
|
2025-07-24 16:05:20 +08:00
|
|
|
github.com/lanrat/extsort v1.0.2 // indirect
|
2025-07-02 15:35:13 +08:00
|
|
|
github.com/mikelolasagasti/xz v1.0.1 // indirect
|
|
|
|
|
github.com/minio/minlz v1.0.0 // indirect
|
2025-06-27 20:26:53 +08:00
|
|
|
github.com/minio/xxml v0.0.3 // indirect
|
2025-07-24 16:05:20 +08:00
|
|
|
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
|
2025-10-14 15:57:16 +08:00
|
|
|
github.com/quic-go/qpack v0.5.1 // indirect
|
2025-11-07 19:11:11 +08:00
|
|
|
github.com/relvacode/iso8601 v1.6.0 // indirect
|
2025-07-24 10:25:09 +08:00
|
|
|
github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e // indirect
|
2025-10-14 15:57:16 +08:00
|
|
|
go.uber.org/mock v0.5.0 // indirect
|
2025-11-07 19:11:11 +08:00
|
|
|
golang.org/x/exp v0.0.0-20250606033433-dcc06ee1d476 // indirect
|
2025-10-14 15:57:16 +08:00
|
|
|
golang.org/x/mod v0.27.0 // indirect
|
2025-07-31 11:24:22 +08:00
|
|
|
gopkg.in/go-jose/go-jose.v2 v2.6.3 // indirect
|
2025-06-27 15:36:50 +08:00
|
|
|
)
|
2025-04-03 20:43:21 +08:00
|
|
|
|
2024-07-13 17:04:18 +08:00
|
|
|
require (
|
2025-07-31 11:20:02 +08:00
|
|
|
github.com/OpenListTeam/115-sdk-go v0.2.2
|
2025-01-18 23:28:12 +08:00
|
|
|
github.com/STARRY-S/zip v0.2.1 // indirect
|
2025-03-15 23:28:40 +08:00
|
|
|
github.com/aymerick/douceur v0.2.0 // indirect
|
2025-07-11 10:24:50 +08:00
|
|
|
github.com/blevesearch/go-faiss v1.0.25 // indirect
|
|
|
|
|
github.com/blevesearch/zapx/v16 v16.2.4 // indirect
|
2025-01-18 23:28:12 +08:00
|
|
|
github.com/bodgit/plumbing v1.3.0 // indirect
|
2025-07-02 15:36:31 +08:00
|
|
|
github.com/bodgit/sevenzip v1.6.1
|
2025-01-18 23:28:12 +08:00
|
|
|
github.com/bodgit/windows v1.0.1 // indirect
|
2025-07-04 11:20:51 +08:00
|
|
|
github.com/bytedance/sonic/loader v0.2.4 // indirect
|
2025-07-24 10:26:23 +08:00
|
|
|
github.com/charmbracelet/x/ansi v0.9.3 // indirect
|
2025-07-24 10:25:09 +08:00
|
|
|
github.com/charmbracelet/x/term v0.2.1 // indirect
|
2025-07-24 16:05:20 +08:00
|
|
|
github.com/cloudflare/circl v1.6.1 // indirect
|
2025-07-04 11:20:51 +08:00
|
|
|
github.com/cloudwego/base64x v0.1.5 // indirect
|
2025-01-18 23:28:12 +08:00
|
|
|
github.com/dsnet/compress v0.0.2-0.20230904184137-39efe44ab707 // indirect
|
2024-07-14 19:36:10 +08:00
|
|
|
github.com/erikgeiser/coninput v0.0.0-20211004153227-1c3628e74d0f // indirect
|
2025-06-14 15:56:51 +08:00
|
|
|
github.com/fclairamb/go-log v0.6.0 // indirect
|
2025-03-15 23:28:40 +08:00
|
|
|
github.com/gorilla/css v1.0.1 // indirect
|
2024-09-28 23:15:58 +08:00
|
|
|
github.com/hashicorp/go-cleanhttp v0.5.2 // indirect
|
2025-01-18 23:28:12 +08:00
|
|
|
github.com/hashicorp/golang-lru/v2 v2.0.7 // indirect
|
2024-09-28 23:15:58 +08:00
|
|
|
github.com/hekmon/cunits/v2 v2.1.0 // indirect
|
2024-07-14 20:29:23 +08:00
|
|
|
github.com/ipfs/boxo v0.12.0 // indirect
|
2024-07-17 12:21:54 +08:00
|
|
|
github.com/jackc/puddle/v2 v2.2.1 // indirect
|
2025-01-18 23:28:12 +08:00
|
|
|
github.com/klauspost/pgzip v1.2.6 // indirect
|
2025-02-16 12:22:11 +08:00
|
|
|
github.com/matoous/go-nanoid/v2 v2.1.0 // indirect
|
2025-03-17 00:52:09 +08:00
|
|
|
github.com/microcosm-cc/bluemonday v1.0.27
|
2025-07-04 11:27:14 +08:00
|
|
|
github.com/nwaples/rardecode/v2 v2.1.1
|
2025-01-18 23:28:12 +08:00
|
|
|
github.com/sorairolake/lzip-go v0.3.5 // indirect
|
2024-12-12 20:51:43 +08:00
|
|
|
github.com/taruti/bytepool v0.0.0-20160310082835-5e3a9ea56543 // indirect
|
2025-01-18 23:28:12 +08:00
|
|
|
github.com/ulikunitz/xz v0.5.12 // indirect
|
2025-07-24 10:04:00 +08:00
|
|
|
github.com/yuin/goldmark v1.7.13
|
2025-03-27 23:20:44 +08:00
|
|
|
go4.org v0.0.0-20230225012048-214862532bf5
|
2025-03-17 00:52:09 +08:00
|
|
|
resty.dev/v3 v3.0.0-beta.2 // indirect
|
2024-07-13 17:04:18 +08:00
|
|
|
)
|
2024-07-07 13:20:34 +08:00
|
|
|
|
2022-06-13 15:39:47 +08:00
|
|
|
require (
|
2023-08-02 15:01:25 +08:00
|
|
|
github.com/Max-Sum/base32768 v0.0.0-20230304063302-18e6ce5945fd // indirect
|
2025-06-30 21:26:42 +08:00
|
|
|
github.com/OpenListTeam/gsync v0.1.0 // indirect
|
feat: Crypt driver, improve http/webdav handling (#4884)
this PR has several enhancements, fixes, and features:
- [x] Crypt: a transparent encryption driver. Anyone can easily, and safely store encrypted data on the remote storage provider. Consider your data is safely stored in the safe, and the storage provider can only see the safe, but not your data.
- [x] Optional: compatible with [Rclone Crypt](https://rclone.org/crypt/). More ways to manipulate the encrypted data.
- [x] directory and filename encryption
- [x] server-side encryption mode (server encrypts & decrypts all data, all data flows thru the server)
- [x] obfuscate sensitive information internally
- [x] introduced a server memory-cached multi-thread downloader.
- [x] Driver: **Quark** enabled this feature, faster load in any single thread scenario. e.g. media player directly playing from the link, now it's faster.
- [x] general improvement on HTTP/WebDAV stream processing & header handling & response handling
- [x] Driver: **Mega** driver support ranged http header
- [x] Driver: **Quark** fix bug of not closing HTTP request to Quark server while user end has closed connection to alist
## Crypt, a transparent Encrypt/Decrypt Driver. (Rclone Crypt compatible)
e.g.
Crypt mount path -> /vault
Crypt remote path -> /ali/encrypted
Aliyun mount paht -> /ali
when the user uploads a.jpg to /vault, the data will be encrypted and saved to /ali/encrypted/xxxxx. And when the user wants to access a.jpg, it's automatically decrypted, and the user can do anything with it.
Since it's Rclone Crypt compatible, users can download /ali/encrypted/xxxxx and decrypt it with rclone crypt tool. Or the user can mount this folder using rclone, then mount the decrypted folder in Linux...
NB. Some breaking changes is made to make it follow global standard, e.g. processing the HTTP header properly.
close #4679
close #4827
Co-authored-by: Sean He <866155+seanhe26@users.noreply.github.com>
Co-authored-by: Andy Hsu <i@nn.ci>
2023-08-02 14:40:36 +08:00
|
|
|
github.com/abbot/go-http-auth v0.4.0 // indirect
|
2022-11-01 15:31:31 +08:00
|
|
|
github.com/aead/ecdh v0.2.0 // indirect
|
2025-01-18 23:28:12 +08:00
|
|
|
github.com/andreburgaud/crypt2go v1.8.0 // indirect
|
2025-07-02 15:35:13 +08:00
|
|
|
github.com/andybalholm/brotli v1.1.2-0.20250424173009-453214e765f3 // indirect
|
2024-06-16 16:58:02 +08:00
|
|
|
github.com/axgle/mahonia v0.0.0-20180208002826-3358181d7394
|
2023-08-08 16:15:45 +08:00
|
|
|
github.com/aymanbagabas/go-osc52/v2 v2.0.1 // indirect
|
2023-05-05 17:42:22 +08:00
|
|
|
github.com/benbjohnson/clock v1.3.0 // indirect
|
feat: Crypt driver, improve http/webdav handling (#4884)
this PR has several enhancements, fixes, and features:
- [x] Crypt: a transparent encryption driver. Anyone can easily, and safely store encrypted data on the remote storage provider. Consider your data is safely stored in the safe, and the storage provider can only see the safe, but not your data.
- [x] Optional: compatible with [Rclone Crypt](https://rclone.org/crypt/). More ways to manipulate the encrypted data.
- [x] directory and filename encryption
- [x] server-side encryption mode (server encrypts & decrypts all data, all data flows thru the server)
- [x] obfuscate sensitive information internally
- [x] introduced a server memory-cached multi-thread downloader.
- [x] Driver: **Quark** enabled this feature, faster load in any single thread scenario. e.g. media player directly playing from the link, now it's faster.
- [x] general improvement on HTTP/WebDAV stream processing & header handling & response handling
- [x] Driver: **Mega** driver support ranged http header
- [x] Driver: **Quark** fix bug of not closing HTTP request to Quark server while user end has closed connection to alist
## Crypt, a transparent Encrypt/Decrypt Driver. (Rclone Crypt compatible)
e.g.
Crypt mount path -> /vault
Crypt remote path -> /ali/encrypted
Aliyun mount paht -> /ali
when the user uploads a.jpg to /vault, the data will be encrypted and saved to /ali/encrypted/xxxxx. And when the user wants to access a.jpg, it's automatically decrypted, and the user can do anything with it.
Since it's Rclone Crypt compatible, users can download /ali/encrypted/xxxxx and decrypt it with rclone crypt tool. Or the user can mount this folder using rclone, then mount the decrypted folder in Linux...
NB. Some breaking changes is made to make it follow global standard, e.g. processing the HTTP header properly.
close #4679
close #4827
Co-authored-by: Sean He <866155+seanhe26@users.noreply.github.com>
Co-authored-by: Andy Hsu <i@nn.ci>
2023-08-02 14:40:36 +08:00
|
|
|
github.com/beorn7/perks v1.0.1 // indirect
|
2025-07-11 10:24:50 +08:00
|
|
|
github.com/bits-and-blooms/bitset v1.22.0 // indirect
|
2023-09-30 22:58:19 +08:00
|
|
|
github.com/blang/semver/v4 v4.0.0 // indirect
|
2025-07-11 10:24:50 +08:00
|
|
|
github.com/blevesearch/bleve_index_api v1.2.8 // indirect
|
|
|
|
|
github.com/blevesearch/geo v0.2.3 // indirect
|
2022-11-24 11:46:47 +08:00
|
|
|
github.com/blevesearch/go-porterstemmer v1.0.3 // indirect
|
|
|
|
|
github.com/blevesearch/gtreap v0.1.1 // indirect
|
|
|
|
|
github.com/blevesearch/mmap-go v1.0.4 // indirect
|
2025-07-11 10:24:50 +08:00
|
|
|
github.com/blevesearch/scorch_segment_api/v2 v2.3.10 // indirect
|
2023-03-19 20:26:48 +08:00
|
|
|
github.com/blevesearch/segment v0.9.1 // indirect
|
2022-11-24 11:46:47 +08:00
|
|
|
github.com/blevesearch/snowballstem v0.9.0 // indirect
|
2023-03-19 20:26:48 +08:00
|
|
|
github.com/blevesearch/upsidedown_store_api v1.0.2 // indirect
|
2025-07-11 10:24:50 +08:00
|
|
|
github.com/blevesearch/vellum v1.1.0 // indirect
|
|
|
|
|
github.com/blevesearch/zapx/v11 v11.4.2 // indirect
|
|
|
|
|
github.com/blevesearch/zapx/v12 v12.4.2 // indirect
|
|
|
|
|
github.com/blevesearch/zapx/v13 v13.4.2 // indirect
|
|
|
|
|
github.com/blevesearch/zapx/v14 v14.4.2 // indirect
|
|
|
|
|
github.com/blevesearch/zapx/v15 v15.4.2 // indirect
|
2022-08-06 01:22:13 +08:00
|
|
|
github.com/boombuler/barcode v1.0.1-0.20190219062509-6c824513bacc // indirect
|
2025-07-04 11:20:51 +08:00
|
|
|
github.com/bytedance/sonic v1.13.3 // indirect
|
2024-07-13 17:42:25 +08:00
|
|
|
github.com/cespare/xxhash/v2 v2.3.0 // indirect
|
feat: Crypt driver, improve http/webdav handling (#4884)
this PR has several enhancements, fixes, and features:
- [x] Crypt: a transparent encryption driver. Anyone can easily, and safely store encrypted data on the remote storage provider. Consider your data is safely stored in the safe, and the storage provider can only see the safe, but not your data.
- [x] Optional: compatible with [Rclone Crypt](https://rclone.org/crypt/). More ways to manipulate the encrypted data.
- [x] directory and filename encryption
- [x] server-side encryption mode (server encrypts & decrypts all data, all data flows thru the server)
- [x] obfuscate sensitive information internally
- [x] introduced a server memory-cached multi-thread downloader.
- [x] Driver: **Quark** enabled this feature, faster load in any single thread scenario. e.g. media player directly playing from the link, now it's faster.
- [x] general improvement on HTTP/WebDAV stream processing & header handling & response handling
- [x] Driver: **Mega** driver support ranged http header
- [x] Driver: **Quark** fix bug of not closing HTTP request to Quark server while user end has closed connection to alist
## Crypt, a transparent Encrypt/Decrypt Driver. (Rclone Crypt compatible)
e.g.
Crypt mount path -> /vault
Crypt remote path -> /ali/encrypted
Aliyun mount paht -> /ali
when the user uploads a.jpg to /vault, the data will be encrypted and saved to /ali/encrypted/xxxxx. And when the user wants to access a.jpg, it's automatically decrypted, and the user can do anything with it.
Since it's Rclone Crypt compatible, users can download /ali/encrypted/xxxxx and decrypt it with rclone crypt tool. Or the user can mount this folder using rclone, then mount the decrypted folder in Linux...
NB. Some breaking changes is made to make it follow global standard, e.g. processing the HTTP header properly.
close #4679
close #4827
Co-authored-by: Sean He <866155+seanhe26@users.noreply.github.com>
Co-authored-by: Andy Hsu <i@nn.ci>
2023-08-02 14:40:36 +08:00
|
|
|
github.com/coreos/go-semver v0.3.1 // indirect
|
2023-05-05 17:42:22 +08:00
|
|
|
github.com/crackcomm/go-gitignore v0.0.0-20170627025303-887ab5e44cc3 // indirect
|
2024-07-07 13:20:34 +08:00
|
|
|
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect
|
2023-05-05 17:42:22 +08:00
|
|
|
github.com/decred/dcrd/dcrec/secp256k1/v4 v4.1.0 // indirect
|
2025-07-24 10:05:44 +08:00
|
|
|
github.com/fxamacker/cbor/v2 v2.9.0 // indirect
|
2025-07-04 11:20:51 +08:00
|
|
|
github.com/gabriel-vasile/mimetype v1.4.9 // indirect
|
|
|
|
|
github.com/gin-contrib/sse v1.1.0 // indirect
|
2025-07-24 16:05:20 +08:00
|
|
|
github.com/go-chi/chi/v5 v5.2.2 // indirect
|
2024-07-14 19:41:23 +08:00
|
|
|
github.com/go-ole/go-ole v1.3.0 // indirect
|
2023-02-22 21:24:35 +08:00
|
|
|
github.com/go-playground/locales v0.14.1 // indirect
|
|
|
|
|
github.com/go-playground/universal-translator v0.18.1 // indirect
|
2025-07-04 11:20:51 +08:00
|
|
|
github.com/go-playground/validator/v10 v10.26.0 // indirect
|
2023-01-05 19:31:47 +08:00
|
|
|
github.com/go-sql-driver/mysql v1.7.0 // indirect
|
2025-07-24 10:05:44 +08:00
|
|
|
github.com/go-webauthn/x v0.1.23 // indirect
|
2025-07-04 11:20:51 +08:00
|
|
|
github.com/goccy/go-json v0.10.5 // indirect
|
2025-07-24 10:05:44 +08:00
|
|
|
github.com/golang-jwt/jwt/v5 v5.2.3 // indirect
|
2024-07-07 13:20:34 +08:00
|
|
|
github.com/golang/protobuf v1.5.4 // indirect
|
2023-05-05 17:42:22 +08:00
|
|
|
github.com/golang/snappy v0.0.4 // indirect
|
2025-07-24 10:05:44 +08:00
|
|
|
github.com/google/go-tpm v0.9.5 // indirect
|
2022-09-03 22:07:08 +08:00
|
|
|
github.com/hashicorp/errwrap v1.1.0 // indirect
|
|
|
|
|
github.com/hashicorp/go-multierror v1.1.1 // indirect
|
2024-05-23 18:56:17 +08:00
|
|
|
github.com/hashicorp/go-version v1.6.0 // indirect
|
feat(drivers): add ProtonDrive driver (#1368)
* 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>
2025-10-18 22:07:11 -06:00
|
|
|
github.com/henrybear327/Proton-API-Bridge v1.0.0
|
2023-04-06 21:41:41 +08:00
|
|
|
github.com/inconshreveable/mousetrap v1.1.0 // indirect
|
2025-07-24 10:05:05 +08:00
|
|
|
github.com/ipfs/go-cid v0.5.0
|
2022-06-29 17:37:40 +08:00
|
|
|
github.com/jackc/pgpassfile v1.0.0 // indirect
|
2023-01-05 19:18:42 +08:00
|
|
|
github.com/jackc/pgservicefile v0.0.0-20221227161230-091c0ba34f0a // indirect
|
2024-07-17 12:21:54 +08:00
|
|
|
github.com/jackc/pgx/v5 v5.5.5 // indirect
|
2022-06-09 17:11:46 +08:00
|
|
|
github.com/jinzhu/inflection v1.0.0 // indirect
|
|
|
|
|
github.com/jinzhu/now v1.1.5 // indirect
|
2022-08-31 17:32:57 +08:00
|
|
|
github.com/jmespath/go-jmespath v0.4.0 // indirect
|
2024-02-23 15:37:40 +08:00
|
|
|
github.com/josharian/intern v1.0.0 // indirect
|
feat: Crypt driver, improve http/webdav handling (#4884)
this PR has several enhancements, fixes, and features:
- [x] Crypt: a transparent encryption driver. Anyone can easily, and safely store encrypted data on the remote storage provider. Consider your data is safely stored in the safe, and the storage provider can only see the safe, but not your data.
- [x] Optional: compatible with [Rclone Crypt](https://rclone.org/crypt/). More ways to manipulate the encrypted data.
- [x] directory and filename encryption
- [x] server-side encryption mode (server encrypts & decrypts all data, all data flows thru the server)
- [x] obfuscate sensitive information internally
- [x] introduced a server memory-cached multi-thread downloader.
- [x] Driver: **Quark** enabled this feature, faster load in any single thread scenario. e.g. media player directly playing from the link, now it's faster.
- [x] general improvement on HTTP/WebDAV stream processing & header handling & response handling
- [x] Driver: **Mega** driver support ranged http header
- [x] Driver: **Quark** fix bug of not closing HTTP request to Quark server while user end has closed connection to alist
## Crypt, a transparent Encrypt/Decrypt Driver. (Rclone Crypt compatible)
e.g.
Crypt mount path -> /vault
Crypt remote path -> /ali/encrypted
Aliyun mount paht -> /ali
when the user uploads a.jpg to /vault, the data will be encrypted and saved to /ali/encrypted/xxxxx. And when the user wants to access a.jpg, it's automatically decrypted, and the user can do anything with it.
Since it's Rclone Crypt compatible, users can download /ali/encrypted/xxxxx and decrypt it with rclone crypt tool. Or the user can mount this folder using rclone, then mount the decrypted folder in Linux...
NB. Some breaking changes is made to make it follow global standard, e.g. processing the HTTP header properly.
close #4679
close #4827
Co-authored-by: Sean He <866155+seanhe26@users.noreply.github.com>
Co-authored-by: Andy Hsu <i@nn.ci>
2023-08-02 14:40:36 +08:00
|
|
|
github.com/jzelinskie/whirlpool v0.0.0-20201016144138-0675e54bb004 // indirect
|
2025-07-24 16:05:20 +08:00
|
|
|
github.com/klauspost/compress v1.18.0 // indirect
|
2025-07-04 11:20:51 +08:00
|
|
|
github.com/klauspost/cpuid/v2 v2.2.10 // indirect
|
2022-09-04 12:43:52 +08:00
|
|
|
github.com/kr/fs v0.1.0 // indirect
|
2024-07-13 17:05:08 +08:00
|
|
|
github.com/leodido/go-urn v1.4.0 // indirect
|
2023-05-05 17:42:22 +08:00
|
|
|
github.com/libp2p/go-buffer-pool v0.1.0 // indirect
|
|
|
|
|
github.com/libp2p/go-flow-metrics v0.1.0 // indirect
|
2023-08-11 22:57:42 +08:00
|
|
|
github.com/libp2p/go-libp2p v0.27.8 // indirect
|
2023-08-08 16:15:45 +08:00
|
|
|
github.com/lucasb-eyer/go-colorful v1.2.0 // indirect
|
2025-07-24 16:05:20 +08:00
|
|
|
github.com/lufia/plan9stats v0.0.0-20250317134145-8bc96cf8fc35 // indirect
|
2025-07-31 11:24:22 +08:00
|
|
|
github.com/mailru/easyjson v0.9.0 // indirect
|
2025-06-14 15:56:51 +08:00
|
|
|
github.com/mattn/go-colorable v0.1.14 // indirect
|
2024-07-07 13:20:34 +08:00
|
|
|
github.com/mattn/go-isatty v0.0.20 // indirect
|
2023-08-08 16:15:45 +08:00
|
|
|
github.com/mattn/go-localereader v0.0.1 // indirect
|
2024-08-22 00:43:11 +08:00
|
|
|
github.com/mattn/go-runewidth v0.0.16 // indirect
|
2024-06-16 16:56:45 +08:00
|
|
|
github.com/mattn/go-sqlite3 v1.14.22 // indirect
|
2024-03-02 15:35:10 +08:00
|
|
|
github.com/minio/sha256-simd v1.0.1 // indirect
|
2023-05-05 17:42:22 +08:00
|
|
|
github.com/mitchellh/go-homedir v1.1.0 // indirect
|
2023-08-14 22:54:38 +08:00
|
|
|
github.com/mitchellh/mapstructure v1.5.0 // indirect
|
2022-06-06 21:48:53 +08:00
|
|
|
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
|
|
|
|
|
github.com/modern-go/reflect2 v1.0.2 // indirect
|
2023-05-05 17:42:22 +08:00
|
|
|
github.com/mr-tron/base58 v1.2.0 // indirect
|
2022-11-24 11:46:47 +08:00
|
|
|
github.com/mschoch/smat v0.2.0 // indirect
|
2024-07-14 19:36:10 +08:00
|
|
|
github.com/muesli/ansi v0.0.0-20230316100256-276c6243b2f6 // indirect
|
2023-08-08 16:15:45 +08:00
|
|
|
github.com/muesli/cancelreader v0.2.2 // indirect
|
2025-07-24 10:25:09 +08:00
|
|
|
github.com/muesli/termenv v0.16.0 // indirect
|
2023-05-05 17:42:22 +08:00
|
|
|
github.com/multiformats/go-base32 v0.1.0 // indirect
|
|
|
|
|
github.com/multiformats/go-base36 v0.2.0 // indirect
|
2023-08-11 22:57:42 +08:00
|
|
|
github.com/multiformats/go-multiaddr v0.9.0 // indirect
|
|
|
|
|
github.com/multiformats/go-multibase v0.2.0 // indirect
|
2023-09-30 22:58:19 +08:00
|
|
|
github.com/multiformats/go-multicodec v0.9.0 // indirect
|
|
|
|
|
github.com/multiformats/go-multihash v0.2.3 // indirect
|
2023-05-05 17:42:22 +08:00
|
|
|
github.com/multiformats/go-multistream v0.4.1 // indirect
|
|
|
|
|
github.com/multiformats/go-varint v0.0.7 // indirect
|
2025-07-04 11:20:51 +08:00
|
|
|
github.com/pelletier/go-toml/v2 v2.2.4 // indirect
|
2025-07-02 15:36:31 +08:00
|
|
|
github.com/pierrec/lz4/v4 v4.1.22 // indirect
|
2024-07-07 13:20:34 +08:00
|
|
|
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect
|
2025-07-24 16:05:20 +08:00
|
|
|
github.com/power-devops/perfstat v0.0.0-20240221224432-82ca36839d55 // indirect
|
2023-06-02 18:22:07 +08:00
|
|
|
github.com/pquerna/cachecontrol v0.1.0 // indirect
|
2025-07-24 16:05:20 +08:00
|
|
|
github.com/prometheus/client_golang v1.22.0 // indirect
|
|
|
|
|
github.com/prometheus/client_model v0.6.2 // indirect
|
|
|
|
|
github.com/prometheus/common v0.64.0 // indirect
|
|
|
|
|
github.com/prometheus/procfs v0.16.1 // indirect
|
feat: Crypt driver, improve http/webdav handling (#4884)
this PR has several enhancements, fixes, and features:
- [x] Crypt: a transparent encryption driver. Anyone can easily, and safely store encrypted data on the remote storage provider. Consider your data is safely stored in the safe, and the storage provider can only see the safe, but not your data.
- [x] Optional: compatible with [Rclone Crypt](https://rclone.org/crypt/). More ways to manipulate the encrypted data.
- [x] directory and filename encryption
- [x] server-side encryption mode (server encrypts & decrypts all data, all data flows thru the server)
- [x] obfuscate sensitive information internally
- [x] introduced a server memory-cached multi-thread downloader.
- [x] Driver: **Quark** enabled this feature, faster load in any single thread scenario. e.g. media player directly playing from the link, now it's faster.
- [x] general improvement on HTTP/WebDAV stream processing & header handling & response handling
- [x] Driver: **Mega** driver support ranged http header
- [x] Driver: **Quark** fix bug of not closing HTTP request to Quark server while user end has closed connection to alist
## Crypt, a transparent Encrypt/Decrypt Driver. (Rclone Crypt compatible)
e.g.
Crypt mount path -> /vault
Crypt remote path -> /ali/encrypted
Aliyun mount paht -> /ali
when the user uploads a.jpg to /vault, the data will be encrypted and saved to /ali/encrypted/xxxxx. And when the user wants to access a.jpg, it's automatically decrypted, and the user can do anything with it.
Since it's Rclone Crypt compatible, users can download /ali/encrypted/xxxxx and decrypt it with rclone crypt tool. Or the user can mount this folder using rclone, then mount the decrypted folder in Linux...
NB. Some breaking changes is made to make it follow global standard, e.g. processing the HTTP header properly.
close #4679
close #4827
Co-authored-by: Sean He <866155+seanhe26@users.noreply.github.com>
Co-authored-by: Andy Hsu <i@nn.ci>
2023-08-02 14:40:36 +08:00
|
|
|
github.com/rfjakob/eme v1.1.2 // indirect
|
2024-07-14 19:36:10 +08:00
|
|
|
github.com/rivo/uniseg v0.4.7 // indirect
|
2024-03-02 15:35:10 +08:00
|
|
|
github.com/ryszard/goskiplist v0.0.0-20150312221310-2dfbae5fcf46 // indirect
|
2024-07-14 19:41:23 +08:00
|
|
|
github.com/shabbyrobe/gocovmerge v0.0.0-20230507112040-c3350d9342df // indirect
|
2025-06-27 20:26:53 +08:00
|
|
|
github.com/skip2/go-qrcode v0.0.0-20200617195104-da1b6568686e
|
2023-05-05 17:42:22 +08:00
|
|
|
github.com/spaolacci/murmur3 v1.1.0 // indirect
|
2025-07-11 10:24:50 +08:00
|
|
|
github.com/spf13/pflag v1.0.6 // indirect
|
2025-07-24 16:05:20 +08:00
|
|
|
github.com/tklauser/go-sysconf v0.3.15 // indirect
|
|
|
|
|
github.com/tklauser/numcpus v0.10.0 // indirect
|
2023-02-22 21:24:35 +08:00
|
|
|
github.com/twitchyliquid64/golang-asm v0.15.1 // indirect
|
2023-02-22 21:19:42 +08:00
|
|
|
github.com/u2takey/go-utils v0.3.1 // indirect
|
2025-07-04 11:20:51 +08:00
|
|
|
github.com/ugorji/go/codec v1.3.0 // indirect
|
2023-08-14 22:54:38 +08:00
|
|
|
github.com/x448/float16 v0.8.4 // indirect
|
2024-07-14 19:41:23 +08:00
|
|
|
github.com/yusufpapurcu/wmi v1.2.4 // indirect
|
2025-07-11 10:24:50 +08:00
|
|
|
go.etcd.io/bbolt v1.4.0 // indirect
|
2025-07-04 11:20:51 +08:00
|
|
|
golang.org/x/arch v0.18.0 // indirect
|
2025-09-23 01:00:18 +08:00
|
|
|
golang.org/x/sync v0.16.0
|
2025-09-29 23:26:56 +08:00
|
|
|
golang.org/x/sys v0.34.0
|
2025-07-24 10:05:44 +08:00
|
|
|
golang.org/x/term v0.33.0 // indirect
|
|
|
|
|
golang.org/x/text v0.27.0
|
2025-10-14 15:57:16 +08:00
|
|
|
golang.org/x/tools v0.35.0 // indirect
|
2025-07-24 16:05:20 +08:00
|
|
|
google.golang.org/genproto/googleapis/rpc v0.0.0-20250603155806-513f23925822 // indirect
|
|
|
|
|
google.golang.org/grpc v1.73.0
|
2025-07-04 11:20:51 +08:00
|
|
|
google.golang.org/protobuf v1.36.6 // indirect
|
2023-12-31 13:46:13 +08:00
|
|
|
gopkg.in/asn1-ber.v1 v1.0.0-20181015200546-f715ec2f112d // indirect
|
2022-08-30 15:22:54 +08:00
|
|
|
gopkg.in/natefinch/lumberjack.v2 v2.0.0 // indirect
|
2023-02-22 21:24:35 +08:00
|
|
|
gopkg.in/yaml.v3 v3.0.1 // indirect
|
2023-05-05 17:42:22 +08:00
|
|
|
lukechampine.com/blake3 v1.1.7 // indirect
|
2022-06-06 21:48:53 +08:00
|
|
|
)
|
2025-03-17 00:52:09 +08:00
|
|
|
|
feat(drivers): add ProtonDrive driver (#1368)
* 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>
2025-10-18 22:07:11 -06:00
|
|
|
replace github.com/ProtonMail/go-proton-api => github.com/henrybear327/go-proton-api v1.0.0
|
|
|
|
|
|
|
|
|
|
replace github.com/cronokirby/saferith => github.com/Da3zKi7/saferith v0.33.0-fixed
|
|
|
|
|
|
2025-06-30 21:26:42 +08:00
|
|
|
// replace github.com/OpenListTeam/115-sdk-go => ../../OpenListTeam/115-sdk-go
|