Commit Graph
36 Commits
Author SHA1 Message Date
4kerccand4kercc 3571fb8d86 fix: speed up SFTP backup upload with concurrent writes (#13976)
The SFTP uploader used io.Copy(dstFile, srcFile). Since the source is an
*os.File it implements io.WriterTo, so io.Copy took the os.File.WriteTo
branch and issued one synchronous SFTP WRITE per packet, waiting for the
server reply every time. Throughput was therefore bounded by packetSize/RTT
instead of the link capacity: on a ~68ms RTT link a 440MB backup reached
only ~0.25 MB/s, while rclone / OpenSSH sftp reach 16-19 MB/s on the very
same link and target.

pkg/sftp already provides a pipelined write path (File.ReadFrom, enabled by
UseConcurrentWrites and bounded by MaxConcurrentRequestsPerFile, default 64).
Use it for uploads, and truncate the remote file to the number of bytes
actually written when the concurrent write fails, to avoid leaving holes.

Measured against the same 68ms RTT target: a 96MiB upload went from 6m40s
(~0.25 MB/s) to ~6s (~16 MB/s); a 950MB three-site backup job from ~2h40m to
~2m04s.

Co-authored-by: 4kercc <13767585+4kercc@users.noreply.github.com>
2026-10-08 09:45:51 +08:00
ssongliu d7723fd42a refactor(agent): replace onedrive sdk with graph api (#13284) 2026-07-17 13:48:04 +08:00
ssongliu 1ab3da1fab fix: apply timeout to snapshot uploads (#13275)
* fix: apply timeout to snapshot uploads

* fix: honor snapshot upload timeouts for sftp and upyun
2026-07-16 11:21:26 +08:00
KOMATAandssongliu 08388124b3 feat: Migrate to MinIO SDK and enhance S3 client with TLS and context (#12207)
* chore: update dependencies and migrate S3 client to MinIO SDK

- Removed AWS SDK dependency and replaced S3 client implementation with MinIO SDK.
- Updated various dependencies in go.mod and go.sum, including version upgrades for `klauspost/compress`, `minio/minio-go`, and `rs/xid`.
- Adjusted S3 client methods to utilize MinIO's API for bucket listing, object existence checks, uploads, downloads, and deletions.

* refactor: enhance S3 client with context management and TLS support

- Introduced context management with timeouts for S3 client operations to improve reliability.
- Added TLS configuration to support secure connections based on the endpoint scheme.
- Updated S3 client methods to utilize the new context and transport settings for enhanced performance and security.

---------

Co-authored-by: ssongliu <sloooop1x@gmail.com>
2026-04-15 10:00:08 +08:00
ssongliu 1d5a26373d chore: optimize lint and cleanup warnings (#12161) 2026-03-12 09:35:33 +00:00
ssongliu 21975dff2d chore: Rollback S3 backup account SDK version (#11546)
Refs #11486

aws v2 存在部分兼容性问题 https://github.com/aws/aws-sdk-go-v2/issues/3007
2026-01-04 08:51:40 +00:00
ssongliu b2803f574b chore: Remove some unused code (#11105) 2025-11-27 17:59:48 +08:00
ssongliu 6d4c1f8e79 fix: Fix the issue of abnormal container list sorting (#11059) 2025-11-25 11:17:34 +08:00
ssongliu 49f3779fd2 fix: Fix the issue of abnormal WebDAV connection (#11038) 2025-11-24 11:36:58 +08:00
KOMATA bf095c677c feat: Migrate AWS SDK to v2 (#10983)
* refactor: Migrate S3 client to AWS SDK v2

* refactor: Migrate S3 client to AWS SDK v2 and update dependencies

* refactor: Simplify endpoint handling in S3 client initialization

* refactor: Update S3 client method receivers to pointer types for consistency
2025-11-21 16:18:38 +08:00
ssongliu 81c1e90e54 chore: Clean up some unused code (#10977) 2025-11-17 08:32:54 +00:00
KOMATA 02d22ba63f feat: refactor regex usage across multiple files and centralize patterns in a new utility (#10896) 2025-11-11 16:14:09 +08:00
ssongliu 4ebd4bddee feat: Support adding IPv6 nodes (#10470)
Refs #9074
2025-09-24 09:40:08 +00:00
cui c0a0f4c801 refactor: use maps (#10154) 2025-08-27 10:08:51 +08:00
ssongliu 75197db3e6 fix: Fix partial WebDAV upload failures (#10077) 2025-08-20 16:44:43 +08:00
ssongliu 7cbebc8236 feat: Support backup for master (#9498) 2025-07-16 17:53:04 +08:00
ssongliu 5c29c5e7dd fix: Implement chunked upload for google drive file transfers (#9354) 2025-07-01 03:49:32 +00:00
ssongliu e3e2006c19 fix: Solve the problem of failed binding and synchronization of Ali Pan (#9195) 2025-06-20 11:12:49 +08:00
ssongliu 4e2f24a8f0 fix: Fix the problem of failed Google drive backup (#9156)
Refs #9129
2025-06-17 10:48:55 +00:00
蘭 d68a0b076b feat: transfer some code (#9124)
refs #9067
2025-06-17 03:56:53 +00:00
igophper c289a5f14f fix: Remove proxy settings from Google Drive client (#9040)
Refs #9034
2025-06-12 18:20:21 +08:00
ssongliu 548929b2e8 fix: Alibaba Cloud Disk ignores tls verification (#8812) 2025-05-25 16:15:34 +08:00
ssongliu 9822427de8 fix: Fix the issue of abnormal token refreshing on alipan (#8747) 2025-05-20 13:42:01 +08:00
ssongliu 5cdc316293 fix: Fix the problem that some request connections are not released (#8329) 2025-04-07 07:39:50 +00:00
ssongliu eaefac4be4 fix: Fix the exception of refreshing the token of Ali Cloud Disk (#8288) 2025-04-01 09:25:52 +00:00
ssongliu 79c8349747 fix: Fix the exception of some 1pctl commands (#8268) 2025-03-27 14:49:37 +00:00
ssongliu 8283cd7d02 feat: adjust internationalization errors and the positions of global … (#7767) 2025-01-24 03:00:07 +00:00
ssongliu 78199a49ed feat: Add usage scope for backup accounts (#7716)
* feat: Add usage scope for backup accounts

* fix: 解决计划任务列表不显示备份账号的问题

* feat: 统一备份文件大小获取接口
2025-01-14 14:27:51 +08:00
ssongliu 4d548adbf7 feat: Uniform compression method (#7581) 2024-12-27 18:34:06 +08:00
zhengkunwang223 75142b33a4 feat(common): Standardize Permissions for Creating Folders and Files 2024-12-20 16:13:23 +08:00
ssongliu a627aa9915 feat: merge from dev (#7366)
* feat: merge from dev

* feat: Merge mobile style code from the dev branch
2024-12-17 15:59:21 +08:00
ssongliu 03e9077c9a feat: 备份账号增加 Google Drive (#7004) 2024-11-12 13:35:12 +08:00
ssongliu 9e82e2837d feat: 增加阿里云盘备份账号 (#6961) 2024-11-06 17:37:14 +08:00
ssongliu 25311a729d feat: 备份账号增加又拍云 (#6911)
Refs #2698
2024-10-31 14:22:03 +00:00
ssongliu d027a9a2ba feat: sftp 备份账号支持密钥添加 (#6677) 2024-10-10 18:11:51 +08:00
ssongliu 8d28b7db94 pref: backend 重命名 agent 2024-07-23 14:48:37 +08:00