aspect-sync 0.0.16 → 0.0.18
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -0
- package/dist/batchManager.d.ts +21 -0
- package/dist/batchManager.d.ts.map +1 -0
- package/dist/batchManager.js +121 -0
- package/dist/batchManager.js.map +1 -0
- package/dist/cliDisplay.d.ts +1 -1
- package/dist/cliDisplay.d.ts.map +1 -1
- package/dist/cliDisplay.js +198 -12
- package/dist/cliDisplay.js.map +1 -1
- package/dist/index.js +35 -0
- package/dist/index.js.map +1 -1
- package/dist/rclone.d.ts +2 -1
- package/dist/rclone.d.ts.map +1 -1
- package/dist/rclone.js +166 -0
- package/dist/rclone.js.map +1 -1
- package/dist/statusTracker.d.ts +12 -1
- package/dist/statusTracker.d.ts.map +1 -1
- package/dist/statusTracker.js +68 -1
- package/dist/statusTracker.js.map +1 -1
- package/dist/sync.d.ts +1 -0
- package/dist/sync.d.ts.map +1 -1
- package/dist/sync.js +232 -10
- package/dist/sync.js.map +1 -1
- package/dist/types.d.ts +34 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +9 -0
- package/dist/types.js.map +1 -1
- package/dist/util.d.ts +2 -0
- package/dist/util.d.ts.map +1 -0
- package/dist/util.js +12 -0
- package/dist/util.js.map +1 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -121,6 +121,7 @@ npx aspect-sync \
|
|
|
121
121
|
| `--api-key <key>` | Aspect API key (or set `ASPECT_API_KEY` env var) | Yes | - |
|
|
122
122
|
| `--api-url <url>` | Aspect API URL (or set `ASPECT_API_URL` env var) | No | `https://api.aspect.inc` |
|
|
123
123
|
| `--concurrent <number>` | Max concurrent chunk uploads | No | `16` |
|
|
124
|
+
| `--batch-size <size>` | Run the migration in download→upload batches (e.g., `500GB`, `1TB`) so data is uploaded as soon as each batch finishes downloading. | No | Disabled |
|
|
124
125
|
| `--keep-local` | Keep local files after upload (for debugging) | No | `false` |
|
|
125
126
|
| `--check` | Run in check-only mode (list remote files and compare with Aspect without downloading/uploading) | No | `false` |
|
|
126
127
|
| `--temp-dir <path>` | Base temporary directory for synced files | No | `~/.aspect/sync` |
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { RemoteFileListing } from "./types.js";
|
|
2
|
+
export interface BatchInfo {
|
|
3
|
+
batchNumber: number;
|
|
4
|
+
files: RemoteFileListing[];
|
|
5
|
+
totalSize: number;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Groups files into batches, keeping directory contents together where possible.
|
|
9
|
+
* Each batch will be ≤ maxBatchSize bytes (except single files > maxBatchSize).
|
|
10
|
+
*/
|
|
11
|
+
export declare function createBatches(files: RemoteFileListing[], maxBatchSize: number): BatchInfo[];
|
|
12
|
+
/**
|
|
13
|
+
* Writes a batch file containing relative file paths, one per line.
|
|
14
|
+
* Used with rclone's --files-from option.
|
|
15
|
+
*/
|
|
16
|
+
export declare function writeBatchFile(batchDir: string, batchNumber: number, files: RemoteFileListing[]): Promise<string>;
|
|
17
|
+
/**
|
|
18
|
+
* Deletes a batch file after successful completion.
|
|
19
|
+
*/
|
|
20
|
+
export declare function cleanupBatchFile(batchFilePath: string): Promise<void>;
|
|
21
|
+
//# sourceMappingURL=batchManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"batchManager.d.ts","sourceRoot":"","sources":["../src/batchManager.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAEnD,MAAM,WAAW,SAAS;IACtB,WAAW,EAAE,MAAM,CAAA;IACnB,KAAK,EAAE,iBAAiB,EAAE,CAAA;IAC1B,SAAS,EAAE,MAAM,CAAA;CACpB;AAED;;;GAGG;AACH,wBAAgB,aAAa,CACzB,KAAK,EAAE,iBAAiB,EAAE,EAC1B,YAAY,EAAE,MAAM,GACrB,SAAS,EAAE,CAmGb;AAED;;;GAGG;AACH,wBAAsB,cAAc,CAChC,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,iBAAiB,EAAE,GAC3B,OAAO,CAAC,MAAM,CAAC,CAKjB;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAS3E"}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
import fs from "fs/promises";
|
|
2
|
+
import path from "path";
|
|
3
|
+
/**
|
|
4
|
+
* Groups files into batches, keeping directory contents together where possible.
|
|
5
|
+
* Each batch will be ≤ maxBatchSize bytes (except single files > maxBatchSize).
|
|
6
|
+
*/
|
|
7
|
+
export function createBatches(files, maxBatchSize) {
|
|
8
|
+
// Group files by their parent directory
|
|
9
|
+
const dirMap = new Map();
|
|
10
|
+
for (const file of files) {
|
|
11
|
+
const dir = path.dirname(file.path);
|
|
12
|
+
if (!dirMap.has(dir)) {
|
|
13
|
+
dirMap.set(dir, []);
|
|
14
|
+
}
|
|
15
|
+
dirMap.get(dir).push(file);
|
|
16
|
+
}
|
|
17
|
+
// Calculate size per directory
|
|
18
|
+
const dirSizes = new Map();
|
|
19
|
+
for (const [dir, dirFiles] of dirMap.entries()) {
|
|
20
|
+
const totalSize = dirFiles.reduce((sum, f) => sum + f.size, 0);
|
|
21
|
+
dirSizes.set(dir, totalSize);
|
|
22
|
+
}
|
|
23
|
+
// Sort directories by path for consistent ordering
|
|
24
|
+
const sortedDirs = Array.from(dirMap.keys()).sort();
|
|
25
|
+
const batches = [];
|
|
26
|
+
let currentBatch = [];
|
|
27
|
+
let currentBatchSize = 0;
|
|
28
|
+
let batchNumber = 1;
|
|
29
|
+
for (const dir of sortedDirs) {
|
|
30
|
+
const dirFiles = dirMap.get(dir);
|
|
31
|
+
const dirSize = dirSizes.get(dir);
|
|
32
|
+
// Edge case: single file or directory larger than max batch size
|
|
33
|
+
if (dirSize > maxBatchSize) {
|
|
34
|
+
// Flush current batch if it has content
|
|
35
|
+
if (currentBatch.length > 0) {
|
|
36
|
+
batches.push({
|
|
37
|
+
batchNumber: batchNumber++,
|
|
38
|
+
files: currentBatch,
|
|
39
|
+
totalSize: currentBatchSize,
|
|
40
|
+
});
|
|
41
|
+
currentBatch = [];
|
|
42
|
+
currentBatchSize = 0;
|
|
43
|
+
}
|
|
44
|
+
// Put this directory in its own batch (or split into multiple batches)
|
|
45
|
+
if (dirFiles.length === 1) {
|
|
46
|
+
// Single large file - put in its own batch
|
|
47
|
+
batches.push({
|
|
48
|
+
batchNumber: batchNumber++,
|
|
49
|
+
files: dirFiles,
|
|
50
|
+
totalSize: dirSize,
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
else {
|
|
54
|
+
// Multiple files in directory - split them across batches
|
|
55
|
+
for (const file of dirFiles) {
|
|
56
|
+
if (currentBatchSize + file.size > maxBatchSize && currentBatch.length > 0) {
|
|
57
|
+
// Flush current batch
|
|
58
|
+
batches.push({
|
|
59
|
+
batchNumber: batchNumber++,
|
|
60
|
+
files: currentBatch,
|
|
61
|
+
totalSize: currentBatchSize,
|
|
62
|
+
});
|
|
63
|
+
currentBatch = [];
|
|
64
|
+
currentBatchSize = 0;
|
|
65
|
+
}
|
|
66
|
+
currentBatch.push(file);
|
|
67
|
+
currentBatchSize += file.size;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
continue;
|
|
71
|
+
}
|
|
72
|
+
// Check if adding this directory would exceed max batch size
|
|
73
|
+
if (currentBatchSize + dirSize > maxBatchSize && currentBatch.length > 0) {
|
|
74
|
+
// Flush current batch
|
|
75
|
+
batches.push({
|
|
76
|
+
batchNumber: batchNumber++,
|
|
77
|
+
files: currentBatch,
|
|
78
|
+
totalSize: currentBatchSize,
|
|
79
|
+
});
|
|
80
|
+
currentBatch = [];
|
|
81
|
+
currentBatchSize = 0;
|
|
82
|
+
}
|
|
83
|
+
// Add directory to current batch
|
|
84
|
+
currentBatch.push(...dirFiles);
|
|
85
|
+
currentBatchSize += dirSize;
|
|
86
|
+
}
|
|
87
|
+
// Flush remaining batch
|
|
88
|
+
if (currentBatch.length > 0) {
|
|
89
|
+
batches.push({
|
|
90
|
+
batchNumber: batchNumber++,
|
|
91
|
+
files: currentBatch,
|
|
92
|
+
totalSize: currentBatchSize,
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
return batches;
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Writes a batch file containing relative file paths, one per line.
|
|
99
|
+
* Used with rclone's --files-from option.
|
|
100
|
+
*/
|
|
101
|
+
export async function writeBatchFile(batchDir, batchNumber, files) {
|
|
102
|
+
const batchFilePath = path.join(batchDir, `batch${batchNumber}.txt`);
|
|
103
|
+
const content = files.map((f) => f.path).join("\n");
|
|
104
|
+
await fs.writeFile(batchFilePath, content, "utf-8");
|
|
105
|
+
return batchFilePath;
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Deletes a batch file after successful completion.
|
|
109
|
+
*/
|
|
110
|
+
export async function cleanupBatchFile(batchFilePath) {
|
|
111
|
+
try {
|
|
112
|
+
await fs.unlink(batchFilePath);
|
|
113
|
+
}
|
|
114
|
+
catch (error) {
|
|
115
|
+
// Ignore errors if file doesn't exist
|
|
116
|
+
if (error.code !== "ENOENT") {
|
|
117
|
+
throw error;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
//# sourceMappingURL=batchManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"batchManager.js","sourceRoot":"","sources":["../src/batchManager.ts"],"names":[],"mappings":"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"}
|
package/dist/cliDisplay.d.ts
CHANGED
package/dist/cliDisplay.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cliDisplay.d.ts","sourceRoot":"","sources":["../src/cliDisplay.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"cliDisplay.d.ts","sourceRoot":"","sources":["../src/cliDisplay.ts"],"names":[],"mappings":"AAMA,cAAM,UAAU;;IAUd,KAAK,IAAI,IAAI;IAwBb,IAAI,IAAI,IAAI;IAoBZ,uBAAuB,IAAI,IAAI;CA4UhC;AAED,eAAO,MAAM,UAAU,YAAmB,CAAA"}
|
package/dist/cliDisplay.js
CHANGED
|
@@ -1,25 +1,24 @@
|
|
|
1
1
|
import logUpdate from "log-update";
|
|
2
2
|
import chalk from "chalk";
|
|
3
3
|
import { statusTracker } from "./statusTracker.js";
|
|
4
|
-
import { UploadStatus } from "./types.js";
|
|
5
|
-
|
|
6
|
-
if (bytes === 0)
|
|
7
|
-
return '0 B';
|
|
8
|
-
const units = ['B', 'KB', 'MB', 'GB', 'TB'];
|
|
9
|
-
const unitIndex = Math.floor(Math.log(bytes) / Math.log(1000));
|
|
10
|
-
const size = bytes / Math.pow(1000, unitIndex);
|
|
11
|
-
return `${size.toFixed(decimals)} ${units[unitIndex]}`;
|
|
12
|
-
};
|
|
4
|
+
import { UploadStatus, BatchPhase } from "./types.js";
|
|
5
|
+
import { formatBytes } from "./util.js";
|
|
13
6
|
class CliDisplay {
|
|
14
7
|
#completedLines = [];
|
|
15
8
|
#completedFileIds = new Set();
|
|
16
9
|
#updateInterval = null;
|
|
17
10
|
#statsInterval = null;
|
|
18
11
|
#isRunning = false;
|
|
12
|
+
#completedBatches = new Map(); // batchNumber -> completed line
|
|
13
|
+
#lastDownloadEtaText = null;
|
|
14
|
+
#lastUploadEtaText = null;
|
|
19
15
|
start() {
|
|
20
16
|
if (this.#isRunning)
|
|
21
17
|
return;
|
|
22
18
|
this.#isRunning = true;
|
|
19
|
+
this.#completedLines = [];
|
|
20
|
+
this.#completedFileIds = new Set();
|
|
21
|
+
this.#completedBatches.clear();
|
|
23
22
|
// Update display every 500ms for smooth progress bars
|
|
24
23
|
// this.#updateInterval = setInterval(() => {
|
|
25
24
|
// }, 500)
|
|
@@ -30,6 +29,8 @@ class CliDisplay {
|
|
|
30
29
|
}, 1000);
|
|
31
30
|
// Calculate stats immediately on start
|
|
32
31
|
statusTracker.updateUploadStats();
|
|
32
|
+
this.#lastDownloadEtaText = null;
|
|
33
|
+
this.#lastUploadEtaText = null;
|
|
33
34
|
}
|
|
34
35
|
stop() {
|
|
35
36
|
if (!this.#isRunning)
|
|
@@ -48,7 +49,28 @@ class CliDisplay {
|
|
|
48
49
|
this.#render();
|
|
49
50
|
logUpdate.done();
|
|
50
51
|
}
|
|
52
|
+
persistCurrentBatchLine() {
|
|
53
|
+
if (!this.#isRunning)
|
|
54
|
+
return;
|
|
55
|
+
const batchProgress = statusTracker.getBatchProgress();
|
|
56
|
+
if (!batchProgress || batchProgress.currentPhase !== BatchPhase.COMPLETE) {
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
const downloadProgress = statusTracker.getDownloadProgress();
|
|
60
|
+
const totals = statusTracker.getUploadTotals();
|
|
61
|
+
const stats = statusTracker.uploadStats;
|
|
62
|
+
const completedLine = this.#formatBatchLine(batchProgress, downloadProgress, totals, stats);
|
|
63
|
+
this.#completedBatches.set(batchProgress.currentBatch, completedLine);
|
|
64
|
+
}
|
|
51
65
|
#render() {
|
|
66
|
+
const batchProgress = statusTracker.getBatchProgress();
|
|
67
|
+
const downloadProgress = statusTracker.getDownloadProgress();
|
|
68
|
+
// Batch mode rendering
|
|
69
|
+
if (batchProgress) {
|
|
70
|
+
this.#renderBatchMode(batchProgress, downloadProgress);
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
// Original non-batch mode rendering
|
|
52
74
|
const inProgressFiles = statusTracker.getInProgressFiles();
|
|
53
75
|
const allFiles = statusTracker.getAllUploadFiles();
|
|
54
76
|
const totals = statusTracker.getUploadTotals();
|
|
@@ -66,10 +88,11 @@ class CliDisplay {
|
|
|
66
88
|
const lines = [];
|
|
67
89
|
// Add all completed lines (these are frozen)
|
|
68
90
|
lines.push(...this.#completedLines);
|
|
91
|
+
// COMMENTED OUT: Per-file progress display (can be re-enabled if needed)
|
|
69
92
|
// Add in-progress files (these update dynamically)
|
|
70
|
-
for (const file of inProgressFiles) {
|
|
71
|
-
|
|
72
|
-
}
|
|
93
|
+
// for (const file of inProgressFiles) {
|
|
94
|
+
// lines.push(this.#formatInProgressFile(file))
|
|
95
|
+
// }
|
|
73
96
|
// Add summary lines
|
|
74
97
|
lines.push("");
|
|
75
98
|
lines.push(this.#formatSummary(totals));
|
|
@@ -125,6 +148,169 @@ class CliDisplay {
|
|
|
125
148
|
] : [];
|
|
126
149
|
return `${parts.join(" | ")}${statsLine.length > 0 ? ` | ${statsLine.join(" | ")}` : ""}`;
|
|
127
150
|
}
|
|
151
|
+
#renderBatchMode(batchProgress, downloadProgress) {
|
|
152
|
+
const lines = [];
|
|
153
|
+
const totals = statusTracker.getUploadTotals();
|
|
154
|
+
const stats = statusTracker.uploadStats;
|
|
155
|
+
// Add all completed batch lines (frozen)
|
|
156
|
+
for (let i = 1; i < batchProgress.currentBatch; i++) {
|
|
157
|
+
if (this.#completedBatches.has(i)) {
|
|
158
|
+
lines.push(this.#completedBatches.get(i));
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
// Current batch line (dynamic)
|
|
162
|
+
const currentBatchLine = this.#formatBatchLine(batchProgress, downloadProgress, totals, stats);
|
|
163
|
+
lines.push(currentBatchLine);
|
|
164
|
+
// If batch is complete, save it to completed batches
|
|
165
|
+
if (batchProgress.currentPhase === BatchPhase.COMPLETE) {
|
|
166
|
+
this.#completedBatches.set(batchProgress.currentBatch, currentBatchLine);
|
|
167
|
+
}
|
|
168
|
+
// Overall totals line (always at the bottom)
|
|
169
|
+
const overallFilesCompleted = batchProgress.overallFilesCompleted + (totals.successFileCount + totals.skippedFileCount);
|
|
170
|
+
const overallBytesTransferred = batchProgress.overallBytesTransferred + totals.totalBytesUploaded;
|
|
171
|
+
const overallBytesRemaining = batchProgress.overallBytesTotal - overallBytesTransferred;
|
|
172
|
+
const completedDownloadBytes = batchProgress.overallBytesTransferred + (downloadProgress ? downloadProgress.bytesTransferred : 0);
|
|
173
|
+
const downloadBytesRemaining = Math.max(batchProgress.overallBytesTotal - completedDownloadBytes, 0);
|
|
174
|
+
let downloadEtaSeconds = null;
|
|
175
|
+
if (downloadBytesRemaining === 0) {
|
|
176
|
+
downloadEtaSeconds = 0;
|
|
177
|
+
}
|
|
178
|
+
else if (downloadProgress && downloadProgress.speed > 0) {
|
|
179
|
+
downloadEtaSeconds = Math.ceil(downloadBytesRemaining / downloadProgress.speed);
|
|
180
|
+
}
|
|
181
|
+
let downloadEtaText;
|
|
182
|
+
if (downloadEtaSeconds !== null) {
|
|
183
|
+
downloadEtaText = `Download ETA: ${this.#formatSeconds(downloadEtaSeconds)}`;
|
|
184
|
+
this.#lastDownloadEtaText = downloadEtaText;
|
|
185
|
+
}
|
|
186
|
+
else {
|
|
187
|
+
downloadEtaText = this.#lastDownloadEtaText ?? "Download ETA: ...";
|
|
188
|
+
}
|
|
189
|
+
const uploadBytesCompleted = batchProgress.overallBytesTransferred + totals.totalBytesUploaded;
|
|
190
|
+
const uploadBytesRemaining = Math.max(batchProgress.overallBytesTotal - uploadBytesCompleted, 0);
|
|
191
|
+
let uploadEtaSeconds = null;
|
|
192
|
+
if (uploadBytesRemaining === 0) {
|
|
193
|
+
uploadEtaSeconds = 0;
|
|
194
|
+
}
|
|
195
|
+
else if (stats.uploadSpeedBps !== null && stats.uploadSpeedBps > 0) {
|
|
196
|
+
uploadEtaSeconds = Math.ceil(uploadBytesRemaining / stats.uploadSpeedBps);
|
|
197
|
+
}
|
|
198
|
+
let uploadEtaText;
|
|
199
|
+
if (uploadEtaSeconds !== null) {
|
|
200
|
+
uploadEtaText = `Upload ETA: ${this.#formatSeconds(uploadEtaSeconds)}`;
|
|
201
|
+
this.#lastUploadEtaText = uploadEtaText;
|
|
202
|
+
}
|
|
203
|
+
else {
|
|
204
|
+
uploadEtaText = this.#lastUploadEtaText ?? "Upload ETA: ...";
|
|
205
|
+
}
|
|
206
|
+
let totalEtaText;
|
|
207
|
+
if (downloadEtaSeconds !== null && uploadEtaSeconds !== null) {
|
|
208
|
+
const totalSeconds = downloadEtaSeconds + uploadEtaSeconds;
|
|
209
|
+
totalEtaText = `Total ETA: ${this.#formatSeconds(totalSeconds)}`;
|
|
210
|
+
}
|
|
211
|
+
else {
|
|
212
|
+
const lastDownloadSeconds = this.#extractSecondsFromEtaText(this.#lastDownloadEtaText);
|
|
213
|
+
const lastUploadSeconds = this.#extractSecondsFromEtaText(this.#lastUploadEtaText);
|
|
214
|
+
if (lastDownloadSeconds !== null && lastUploadSeconds !== null) {
|
|
215
|
+
totalEtaText = `Total ETA: ${this.#formatSeconds(lastDownloadSeconds + lastUploadSeconds)}`;
|
|
216
|
+
}
|
|
217
|
+
else {
|
|
218
|
+
totalEtaText = "Total ETA: ...";
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
const totalParts = [
|
|
222
|
+
`${overallFilesCompleted}/${batchProgress.overallFilesTotal} files`,
|
|
223
|
+
`${formatBytes(overallBytesTransferred)} / ${formatBytes(batchProgress.overallBytesTotal)}`,
|
|
224
|
+
chalk.yellow(`${formatBytes(overallBytesRemaining)} remaining`),
|
|
225
|
+
downloadEtaText,
|
|
226
|
+
uploadEtaText,
|
|
227
|
+
totalEtaText,
|
|
228
|
+
];
|
|
229
|
+
lines.push(`Total: ${totalParts.join(", ")}`);
|
|
230
|
+
// Update the display
|
|
231
|
+
logUpdate(lines.join("\n"));
|
|
232
|
+
}
|
|
233
|
+
#formatBatchLine(batchProgress, downloadProgress, totals, stats) {
|
|
234
|
+
const phase = batchProgress.currentPhase;
|
|
235
|
+
const batchNum = `Batch ${batchProgress.currentBatch}/${batchProgress.totalBatches}`;
|
|
236
|
+
switch (phase) {
|
|
237
|
+
case BatchPhase.DOWNLOADING:
|
|
238
|
+
if (downloadProgress) {
|
|
239
|
+
const dlPercent = downloadProgress.percentComplete.toFixed(1);
|
|
240
|
+
const dlSpeed = formatBytes(downloadProgress.speed) + "/s";
|
|
241
|
+
const dlEta = this.#formatSeconds(downloadProgress.eta);
|
|
242
|
+
return `${batchNum}: ${chalk.blue("↓ Downloading")} (${formatBytes(downloadProgress.bytesTransferred)} / ${formatBytes(downloadProgress.totalBytes)}, ${dlPercent}%, ${dlSpeed}, ETA: ${dlEta})`;
|
|
243
|
+
}
|
|
244
|
+
return `${batchNum}: ${chalk.blue("↓ Downloading...")}`;
|
|
245
|
+
case BatchPhase.SCANNING:
|
|
246
|
+
return `${batchNum}: ${chalk.yellow("Scanning...")}`;
|
|
247
|
+
case BatchPhase.SYNCING_FOLDERS:
|
|
248
|
+
return `${batchNum}: ${chalk.yellow("Syncing folders...")}`;
|
|
249
|
+
case BatchPhase.UPLOADING:
|
|
250
|
+
const uploadedFiles = totals.successFileCount + totals.failedFileCount + totals.skippedFileCount;
|
|
251
|
+
const uploadedBytes = totals.totalBytesUploaded;
|
|
252
|
+
const uploadPercent = batchProgress.batchBytesTotal > 0
|
|
253
|
+
? ((uploadedBytes / batchProgress.batchBytesTotal) * 100).toFixed(1)
|
|
254
|
+
: "0.0";
|
|
255
|
+
let uploadLine = `${batchNum}: ${chalk.blue("↑ Uploading")} (${uploadedFiles}/${batchProgress.batchFilesTotal} files, ${formatBytes(uploadedBytes)} / ${formatBytes(batchProgress.batchBytesTotal)}, ${uploadPercent}%`;
|
|
256
|
+
// Add speed and ETA if available
|
|
257
|
+
if (stats.uploadSpeedBps !== null && stats.timeRemainingSeconds !== null) {
|
|
258
|
+
uploadLine += `, ${stats.formattedSpeed}, ETA: ${stats.formattedTime}`;
|
|
259
|
+
}
|
|
260
|
+
uploadLine += ")";
|
|
261
|
+
return uploadLine;
|
|
262
|
+
case BatchPhase.CLEANING:
|
|
263
|
+
return `${batchNum}: ${chalk.yellow("Cleaning...")}`;
|
|
264
|
+
case BatchPhase.COMPLETE:
|
|
265
|
+
const batchSize = formatBytes(batchProgress.batchBytesTotal);
|
|
266
|
+
return `${batchNum}: ${chalk.green("✓ Complete")} (${batchProgress.batchFilesTotal} files, ${batchSize}${batchProgress.extraDetails ? `, ${batchProgress.extraDetails}` : ""})`;
|
|
267
|
+
default:
|
|
268
|
+
return `${batchNum}: ${chalk.gray("Processing...")}`;
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
#formatSeconds(seconds) {
|
|
272
|
+
if (seconds <= 0)
|
|
273
|
+
return "0s";
|
|
274
|
+
const hours = Math.floor(seconds / 3600);
|
|
275
|
+
const minutes = Math.floor((seconds % 3600) / 60);
|
|
276
|
+
const secs = Math.floor(seconds % 60);
|
|
277
|
+
if (hours > 0) {
|
|
278
|
+
return `${hours}h ${minutes}m`;
|
|
279
|
+
}
|
|
280
|
+
if (minutes > 0) {
|
|
281
|
+
return `${minutes}m ${secs}s`;
|
|
282
|
+
}
|
|
283
|
+
return `${secs}s`;
|
|
284
|
+
}
|
|
285
|
+
#extractSecondsFromEtaText(etaText) {
|
|
286
|
+
if (!etaText) {
|
|
287
|
+
return null;
|
|
288
|
+
}
|
|
289
|
+
const match = etaText.match(/(\d+)h/) || etaText.match(/(\d+)m/) || etaText.match(/(\d+)s/);
|
|
290
|
+
if (!match) {
|
|
291
|
+
return null;
|
|
292
|
+
}
|
|
293
|
+
let remainingText = etaText.replace("Download ETA:", "").replace("Upload ETA:", "").replace("Total ETA:", "").trim();
|
|
294
|
+
if (remainingText === "Calculating...") {
|
|
295
|
+
return null;
|
|
296
|
+
}
|
|
297
|
+
let totalSeconds = 0;
|
|
298
|
+
const hourMatch = remainingText.match(/(\d+)h/);
|
|
299
|
+
if (hourMatch) {
|
|
300
|
+
totalSeconds += parseInt(hourMatch[1], 10) * 3600;
|
|
301
|
+
remainingText = remainingText.replace(hourMatch[0], "");
|
|
302
|
+
}
|
|
303
|
+
const minuteMatch = remainingText.match(/(\d+)m/);
|
|
304
|
+
if (minuteMatch) {
|
|
305
|
+
totalSeconds += parseInt(minuteMatch[1], 10) * 60;
|
|
306
|
+
remainingText = remainingText.replace(minuteMatch[0], "");
|
|
307
|
+
}
|
|
308
|
+
const secondMatch = remainingText.match(/(\d+)s/);
|
|
309
|
+
if (secondMatch) {
|
|
310
|
+
totalSeconds += parseInt(secondMatch[1], 10);
|
|
311
|
+
}
|
|
312
|
+
return totalSeconds > 0 ? totalSeconds : null;
|
|
313
|
+
}
|
|
128
314
|
}
|
|
129
315
|
export const cliDisplay = new CliDisplay();
|
|
130
316
|
//# sourceMappingURL=cliDisplay.js.map
|
package/dist/cliDisplay.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cliDisplay.js","sourceRoot":"","sources":["../src/cliDisplay.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cliDisplay.js","sourceRoot":"","sources":["../src/cliDisplay.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -9,6 +9,25 @@ import { SyncOrchestrator } from "./sync.js";
|
|
|
9
9
|
const __filename = fileURLToPath(import.meta.url);
|
|
10
10
|
const __dirname = path.dirname(__filename);
|
|
11
11
|
const packageJson = JSON.parse(readFileSync(path.join(__dirname, "..", "package.json"), "utf-8"));
|
|
12
|
+
/**
|
|
13
|
+
* Parse size string like "500GB", "1TB", "100MB" to bytes
|
|
14
|
+
*/
|
|
15
|
+
function parseSizeString(sizeStr) {
|
|
16
|
+
const match = sizeStr.match(/^(\d+(?:\.\d+)?)\s*(B|KB|MB|GB|TB)$/i);
|
|
17
|
+
if (!match) {
|
|
18
|
+
return null;
|
|
19
|
+
}
|
|
20
|
+
const value = parseFloat(match[1]);
|
|
21
|
+
const unit = match[2].toUpperCase();
|
|
22
|
+
const multipliers = {
|
|
23
|
+
'B': 1,
|
|
24
|
+
'KB': 1000,
|
|
25
|
+
'MB': 1000 * 1000,
|
|
26
|
+
'GB': 1000 * 1000 * 1000,
|
|
27
|
+
'TB': 1000 * 1000 * 1000 * 1000,
|
|
28
|
+
};
|
|
29
|
+
return value * (multipliers[unit] || 1);
|
|
30
|
+
}
|
|
12
31
|
const program = new Command();
|
|
13
32
|
program
|
|
14
33
|
.name("aspect-sync")
|
|
@@ -26,6 +45,7 @@ program
|
|
|
26
45
|
.option("--temp-dir <path>", "Local temporary directory for synced files", path.join(os.homedir(), ".aspect", "sync"))
|
|
27
46
|
.option("--session <name>", "Session name for isolation (default: auto-generated timestamp)")
|
|
28
47
|
.option("--check", "Check remote files against Aspect without downloading/uploading", false)
|
|
48
|
+
.option("--batch-size <size>", "Enable batched mode with max batch size (e.g., 500GB, 1TB). Helps with large migrations.", "")
|
|
29
49
|
.option("--rclone-transfers <number>", "Number of parallel file transfers (default: 4)", "4")
|
|
30
50
|
.option("--rclone-multi-thread-streams <number>", "Streams per large file (default: 4, higher = faster large files)", "4")
|
|
31
51
|
.option("--rclone-multi-thread-chunk-size <size>", "Chunk size for multi-threading (default: 64MiB)", "64MiB")
|
|
@@ -72,6 +92,17 @@ program
|
|
|
72
92
|
const rcloneCheckers = rcloneTransfers >= 16
|
|
73
93
|
? Math.floor(rcloneTransfers / 4)
|
|
74
94
|
: rcloneTransfers;
|
|
95
|
+
// Parse batch size if provided
|
|
96
|
+
let batchSizeBytes = undefined;
|
|
97
|
+
if (options.batchSize) {
|
|
98
|
+
const parsedSize = parseSizeString(options.batchSize);
|
|
99
|
+
if (parsedSize === null) {
|
|
100
|
+
console.error(`Error: Invalid batch size format: ${options.batchSize}`);
|
|
101
|
+
console.error('Expected format: <number><unit> (e.g., "500GB", "1TB", "100MB")');
|
|
102
|
+
process.exit(1);
|
|
103
|
+
}
|
|
104
|
+
batchSizeBytes = parsedSize;
|
|
105
|
+
}
|
|
75
106
|
// Build config
|
|
76
107
|
const config = {
|
|
77
108
|
remote: options.remote,
|
|
@@ -94,6 +125,7 @@ program
|
|
|
94
125
|
useMmap: !options.rcloneNoMmap,
|
|
95
126
|
extraRcloneArgs: options.rcloneExtra,
|
|
96
127
|
},
|
|
128
|
+
batchSizeBytes: batchSizeBytes,
|
|
97
129
|
};
|
|
98
130
|
// Validate config
|
|
99
131
|
if (isNaN(config.maxConcurrent) || config.maxConcurrent < 1) {
|
|
@@ -113,6 +145,9 @@ program
|
|
|
113
145
|
if (options.check) {
|
|
114
146
|
await orchestrator.runCheckOnly();
|
|
115
147
|
}
|
|
148
|
+
else if (batchSizeBytes !== undefined) {
|
|
149
|
+
await orchestrator.runBatched();
|
|
150
|
+
}
|
|
116
151
|
else {
|
|
117
152
|
await orchestrator.run();
|
|
118
153
|
}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/rclone.d.ts
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
import type { RcloneOptions } from "./types.js";
|
|
1
|
+
import type { RcloneOptions, DownloadProgress } from "./types.js";
|
|
2
2
|
export declare class RcloneError extends Error {
|
|
3
3
|
readonly stderr: string;
|
|
4
4
|
constructor(message: string, stderr: string);
|
|
5
5
|
}
|
|
6
6
|
export declare function checkRcloneInstalled(): Promise<void>;
|
|
7
7
|
export declare function syncFromRemote(remote: string, remotePath: string, localPath: string, options: RcloneOptions): Promise<void>;
|
|
8
|
+
export declare function syncFromRemoteWithFiles(remote: string, remotePath: string, localPath: string, batchFilePath: string, options: RcloneOptions, onProgress?: (progress: DownloadProgress) => void): Promise<void>;
|
|
8
9
|
export declare function listRemoteFiles(remote: string, remotePath: string): Promise<string[]>;
|
|
9
10
|
export interface LocalFileInfo {
|
|
10
11
|
relativePath: string;
|
package/dist/rclone.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rclone.d.ts","sourceRoot":"","sources":["../src/rclone.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"rclone.d.ts","sourceRoot":"","sources":["../src/rclone.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAEjE,qBAAa,WAAY,SAAQ,KAAK;aACS,MAAM,EAAE,MAAM;gBAA/C,OAAO,EAAE,MAAM,EAAkB,MAAM,EAAE,MAAM;CAI5D;AAED,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC,CAoB1D;AAED,wBAAsB,cAAc,CAClC,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,IAAI,CAAC,CAgEf;AAED,wBAAsB,uBAAuB,CAC3C,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE,aAAa,EACtB,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,gBAAgB,KAAK,IAAI,GAChD,OAAO,CAAC,IAAI,CAAC,CAgMf;AAED,wBAAsB,eAAe,CACnC,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,MAAM,EAAE,CAAC,CA0CnB;AAED,MAAM,WAAW,aAAa;IAC5B,YAAY,EAAE,MAAM,CAAA;IACpB,YAAY,EAAE,MAAM,CAAA;IACpB,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,aAAa,EAAE,CAAA;IACtB,cAAc,EAAE,MAAM,CAAA;CACvB;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;CACb;AAED,wBAAsB,uBAAuB,CAC3C,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,SAAS,GAAE,MAAM,EAAO,GACvB,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAuD9B;AAED,wBAAsB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAyC/E;AAED,wBAAsB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAMrE;AAED,wBAAsB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA+B5E"}
|