rl-rock 1.3.6 → 1.3.8
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/dist/index.d.mts +4 -2
- package/dist/index.d.ts +4 -2
- package/dist/index.js +20 -10
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +20 -10
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.d.mts
CHANGED
|
@@ -1287,7 +1287,7 @@ declare class Sandbox extends AbstractSandbox {
|
|
|
1287
1287
|
writeFile(request: WriteFileRequest): Promise<WriteFileResponse>;
|
|
1288
1288
|
readFile(request: ReadFileRequest): Promise<ReadFileResponse>;
|
|
1289
1289
|
upload(request: UploadRequest): Promise<UploadResponse>;
|
|
1290
|
-
uploadByPath(sourcePath: string, targetPath: string, uploadMode?: UploadMode): Promise<UploadResponse>;
|
|
1290
|
+
uploadByPath(sourcePath: string, targetPath: string, uploadMode?: UploadMode, timeout?: number): Promise<UploadResponse>;
|
|
1291
1291
|
/**
|
|
1292
1292
|
* Get OSS STS credentials from sandbox
|
|
1293
1293
|
*/
|
|
@@ -1299,13 +1299,15 @@ declare class Sandbox extends AbstractSandbox {
|
|
|
1299
1299
|
/**
|
|
1300
1300
|
* Download file from sandbox via OSS
|
|
1301
1301
|
*/
|
|
1302
|
-
downloadFile(remotePath: string, localPath: string): Promise<DownloadFileResponse>;
|
|
1302
|
+
downloadFile(remotePath: string, localPath: string, timeout?: number): Promise<DownloadFileResponse>;
|
|
1303
1303
|
/**
|
|
1304
1304
|
* Upload file via OSS (internal method)
|
|
1305
|
+
* @param timeout - Optional timeout in milliseconds
|
|
1305
1306
|
*/
|
|
1306
1307
|
private uploadViaOss;
|
|
1307
1308
|
/**
|
|
1308
1309
|
* Setup OSS bucket with STS credentials
|
|
1310
|
+
* @param timeout - Optional timeout in milliseconds (defaults to ROCK_OSS_TIMEOUT env var or 300000ms)
|
|
1309
1311
|
*/
|
|
1310
1312
|
private setupOss;
|
|
1311
1313
|
close(): Promise<void>;
|
package/dist/index.d.ts
CHANGED
|
@@ -1287,7 +1287,7 @@ declare class Sandbox extends AbstractSandbox {
|
|
|
1287
1287
|
writeFile(request: WriteFileRequest): Promise<WriteFileResponse>;
|
|
1288
1288
|
readFile(request: ReadFileRequest): Promise<ReadFileResponse>;
|
|
1289
1289
|
upload(request: UploadRequest): Promise<UploadResponse>;
|
|
1290
|
-
uploadByPath(sourcePath: string, targetPath: string, uploadMode?: UploadMode): Promise<UploadResponse>;
|
|
1290
|
+
uploadByPath(sourcePath: string, targetPath: string, uploadMode?: UploadMode, timeout?: number): Promise<UploadResponse>;
|
|
1291
1291
|
/**
|
|
1292
1292
|
* Get OSS STS credentials from sandbox
|
|
1293
1293
|
*/
|
|
@@ -1299,13 +1299,15 @@ declare class Sandbox extends AbstractSandbox {
|
|
|
1299
1299
|
/**
|
|
1300
1300
|
* Download file from sandbox via OSS
|
|
1301
1301
|
*/
|
|
1302
|
-
downloadFile(remotePath: string, localPath: string): Promise<DownloadFileResponse>;
|
|
1302
|
+
downloadFile(remotePath: string, localPath: string, timeout?: number): Promise<DownloadFileResponse>;
|
|
1303
1303
|
/**
|
|
1304
1304
|
* Upload file via OSS (internal method)
|
|
1305
|
+
* @param timeout - Optional timeout in milliseconds
|
|
1305
1306
|
*/
|
|
1306
1307
|
private uploadViaOss;
|
|
1307
1308
|
/**
|
|
1308
1309
|
* Setup OSS bucket with STS credentials
|
|
1310
|
+
* @param timeout - Optional timeout in milliseconds (defaults to ROCK_OSS_TIMEOUT env var or 300000ms)
|
|
1309
1311
|
*/
|
|
1310
1312
|
private setupOss;
|
|
1311
1313
|
close(): Promise<void>;
|
package/dist/index.js
CHANGED
|
@@ -601,6 +601,9 @@ var envVars = {
|
|
|
601
601
|
get ROCK_OSS_BUCKET_REGION() {
|
|
602
602
|
return getEnv("ROCK_OSS_BUCKET_REGION");
|
|
603
603
|
},
|
|
604
|
+
get ROCK_OSS_TIMEOUT() {
|
|
605
|
+
return parseInt(getEnv("ROCK_OSS_TIMEOUT", "300000"), 10);
|
|
606
|
+
},
|
|
604
607
|
// Pip
|
|
605
608
|
get ROCK_PIP_INDEX_URL() {
|
|
606
609
|
return getEnv("ROCK_PIP_INDEX_URL", "https://pypi.org/simple/");
|
|
@@ -2295,7 +2298,7 @@ var Sandbox = class extends AbstractSandbox {
|
|
|
2295
2298
|
async upload(request) {
|
|
2296
2299
|
return this.uploadByPath(request.sourcePath, request.targetPath);
|
|
2297
2300
|
}
|
|
2298
|
-
async uploadByPath(sourcePath, targetPath, uploadMode = "auto") {
|
|
2301
|
+
async uploadByPath(sourcePath, targetPath, uploadMode = "auto", timeout) {
|
|
2299
2302
|
const url = `${this.url}/upload`;
|
|
2300
2303
|
const headers = this.buildHeaders();
|
|
2301
2304
|
try {
|
|
@@ -2310,7 +2313,7 @@ var Sandbox = class extends AbstractSandbox {
|
|
|
2310
2313
|
const ossEnabled = envVars.ROCK_OSS_ENABLE;
|
|
2311
2314
|
const ossThreshold = 1024 * 1024;
|
|
2312
2315
|
if (uploadMode === "oss" || uploadMode === "auto" && ossEnabled && fileSize > ossThreshold) {
|
|
2313
|
-
return this.uploadViaOss(sourcePath, targetPath);
|
|
2316
|
+
return this.uploadViaOss(sourcePath, targetPath, timeout);
|
|
2314
2317
|
}
|
|
2315
2318
|
const fileBuffer = await fs.readFile(sourcePath);
|
|
2316
2319
|
const fileName = sourcePath.split("/").pop() ?? "file";
|
|
@@ -2361,7 +2364,7 @@ var Sandbox = class extends AbstractSandbox {
|
|
|
2361
2364
|
/**
|
|
2362
2365
|
* Download file from sandbox via OSS
|
|
2363
2366
|
*/
|
|
2364
|
-
async downloadFile(remotePath, localPath) {
|
|
2367
|
+
async downloadFile(remotePath, localPath, timeout) {
|
|
2365
2368
|
if (!envVars.ROCK_OSS_ENABLE) {
|
|
2366
2369
|
return {
|
|
2367
2370
|
success: false,
|
|
@@ -2377,7 +2380,7 @@ var Sandbox = class extends AbstractSandbox {
|
|
|
2377
2380
|
return { success: false, message: `Remote file does not exist: ${remotePath}` };
|
|
2378
2381
|
}
|
|
2379
2382
|
if (this.ossBucket === null || this.isTokenExpired()) {
|
|
2380
|
-
await this.setupOss();
|
|
2383
|
+
await this.setupOss(timeout);
|
|
2381
2384
|
}
|
|
2382
2385
|
if (!this.ossBucket) {
|
|
2383
2386
|
return { success: false, message: "Failed to setup OSS bucket" };
|
|
@@ -2390,12 +2393,14 @@ var Sandbox = class extends AbstractSandbox {
|
|
|
2390
2393
|
const bucketName = envVars.ROCK_OSS_BUCKET_NAME ?? "";
|
|
2391
2394
|
const region = (envVars.ROCK_OSS_BUCKET_REGION ?? "").replace(/^oss-/, "");
|
|
2392
2395
|
const endpoint = envVars.ROCK_OSS_BUCKET_ENDPOINT ?? `oss-${region}.aliyuncs.com`;
|
|
2393
|
-
const
|
|
2396
|
+
const ossutilInnerCmd = `ossutil cp '${remotePath}' 'oss://${bucketName}/${objectName}' --access-key-id '${credentials.accessKeyId}' --access-key-secret '${credentials.accessKeySecret}' --sts-token '${credentials.securityToken}' --endpoint '${endpoint}' --region '${region}'`;
|
|
2397
|
+
const uploadToOssCmd = `bash -c '${ossutilInnerCmd.replace(/'/g, `'"'"'`)}'`;
|
|
2394
2398
|
const uploadResult = await this.arun(uploadToOssCmd, { mode: "nohup", waitTimeout: 600 });
|
|
2395
2399
|
if (uploadResult.exitCode !== 0) {
|
|
2396
2400
|
return { success: false, message: `Sandbox to OSS upload failed: ${uploadResult.output}` };
|
|
2397
2401
|
}
|
|
2398
|
-
const
|
|
2402
|
+
const ossTimeout = timeout ?? envVars.ROCK_OSS_TIMEOUT;
|
|
2403
|
+
const result = await this.ossBucket.get(objectName, localPath, { timeout: ossTimeout });
|
|
2399
2404
|
try {
|
|
2400
2405
|
await this.ossBucket.delete(objectName);
|
|
2401
2406
|
} catch {
|
|
@@ -2407,11 +2412,12 @@ var Sandbox = class extends AbstractSandbox {
|
|
|
2407
2412
|
}
|
|
2408
2413
|
/**
|
|
2409
2414
|
* Upload file via OSS (internal method)
|
|
2415
|
+
* @param timeout - Optional timeout in milliseconds
|
|
2410
2416
|
*/
|
|
2411
|
-
async uploadViaOss(sourcePath, targetPath) {
|
|
2417
|
+
async uploadViaOss(sourcePath, targetPath, timeout) {
|
|
2412
2418
|
try {
|
|
2413
2419
|
if (this.ossBucket === null || this.isTokenExpired()) {
|
|
2414
|
-
await this.setupOss();
|
|
2420
|
+
await this.setupOss(timeout);
|
|
2415
2421
|
}
|
|
2416
2422
|
if (!this.ossBucket) {
|
|
2417
2423
|
return { success: false, message: "Failed to setup OSS bucket" };
|
|
@@ -2419,7 +2425,8 @@ var Sandbox = class extends AbstractSandbox {
|
|
|
2419
2425
|
const timestamp = Date.now();
|
|
2420
2426
|
const fileName = sourcePath.split("/").pop() ?? "file";
|
|
2421
2427
|
const objectName = `${timestamp}-${fileName}`;
|
|
2422
|
-
|
|
2428
|
+
const ossTimeout = timeout ?? envVars.ROCK_OSS_TIMEOUT;
|
|
2429
|
+
await this.ossBucket.put(objectName, sourcePath, { timeout: ossTimeout });
|
|
2423
2430
|
const signedUrl = this.ossBucket.signatureUrl(objectName, { expires: 600 });
|
|
2424
2431
|
const downloadCmd = `wget -c -O '${targetPath}' '${signedUrl}'`;
|
|
2425
2432
|
await this.arun(downloadCmd, { mode: "nohup", waitTimeout: 600 });
|
|
@@ -2434,13 +2441,16 @@ var Sandbox = class extends AbstractSandbox {
|
|
|
2434
2441
|
}
|
|
2435
2442
|
/**
|
|
2436
2443
|
* Setup OSS bucket with STS credentials
|
|
2444
|
+
* @param timeout - Optional timeout in milliseconds (defaults to ROCK_OSS_TIMEOUT env var or 300000ms)
|
|
2437
2445
|
*/
|
|
2438
|
-
async setupOss() {
|
|
2446
|
+
async setupOss(timeout) {
|
|
2439
2447
|
const credentials = await this.getOssStsCredentials();
|
|
2440
2448
|
const OSS = (await import('ali-oss')).default;
|
|
2449
|
+
const ossTimeout = timeout ?? envVars.ROCK_OSS_TIMEOUT;
|
|
2441
2450
|
this.ossBucket = new OSS({
|
|
2442
2451
|
secure: true,
|
|
2443
2452
|
// Use HTTPS for OSS connections
|
|
2453
|
+
timeout: ossTimeout,
|
|
2444
2454
|
region: envVars.ROCK_OSS_BUCKET_REGION ?? "",
|
|
2445
2455
|
accessKeyId: credentials.accessKeyId,
|
|
2446
2456
|
accessKeySecret: credentials.accessKeySecret,
|