qstd 0.3.70 → 0.3.72
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.
|
@@ -45,6 +45,70 @@ export type FileProps = {
|
|
|
45
45
|
export declare const getFile: (s3: _t.Client, props: FileProps) => Promise<GetObjectCommandOutput>;
|
|
46
46
|
export declare const deleteFile: (s3: _t.Client, props: FileProps) => Promise<DeleteObjectCommandOutput>;
|
|
47
47
|
export declare const getFileMetadata: (s3: _t.Client, props: FileProps) => Promise<HeadObjectCommandOutput>;
|
|
48
|
+
/**
|
|
49
|
+
* Check if a file exists in S3.
|
|
50
|
+
*
|
|
51
|
+
* Returns true if the file exists, false if it doesn't.
|
|
52
|
+
* Only throws on unexpected errors (not 404).
|
|
53
|
+
*
|
|
54
|
+
* @example
|
|
55
|
+
* ```ts
|
|
56
|
+
* const exists = await S3.fileExists(s3, { key: "images/photo.jpg" });
|
|
57
|
+
* if (exists) {
|
|
58
|
+
* // File exists, safe to reference or copy
|
|
59
|
+
* }
|
|
60
|
+
* ```
|
|
61
|
+
*/
|
|
62
|
+
export declare const fileExists: (s3: _t.Client, props: FileProps) => Promise<boolean>;
|
|
63
|
+
export type CopyFileProps = {
|
|
64
|
+
/** Source file location */
|
|
65
|
+
src: {
|
|
66
|
+
bucket?: string;
|
|
67
|
+
key: string;
|
|
68
|
+
};
|
|
69
|
+
/** Destination file location */
|
|
70
|
+
dest: {
|
|
71
|
+
bucket?: string;
|
|
72
|
+
key: string;
|
|
73
|
+
};
|
|
74
|
+
};
|
|
75
|
+
/**
|
|
76
|
+
* Copy a file within S3.
|
|
77
|
+
*
|
|
78
|
+
* By default, both source and destination use the client's configured bucket.
|
|
79
|
+
* Override with `src.bucket` or `dest.bucket` for cross-bucket copies.
|
|
80
|
+
*
|
|
81
|
+
* @example
|
|
82
|
+
* ```ts
|
|
83
|
+
* // Copy within same bucket
|
|
84
|
+
* await S3.copyFile(s3, {
|
|
85
|
+
* src: { key: "index.sqlite" },
|
|
86
|
+
* dest: { key: "index.backup.1.sqlite" },
|
|
87
|
+
* });
|
|
88
|
+
*
|
|
89
|
+
* // Copy across buckets
|
|
90
|
+
* await S3.copyFile(s3, {
|
|
91
|
+
* src: { bucket: "prod-bucket", key: "data/file.json" },
|
|
92
|
+
* dest: { bucket: "backup-bucket", key: "backup/file.json" },
|
|
93
|
+
* });
|
|
94
|
+
* ```
|
|
95
|
+
*/
|
|
96
|
+
export declare const copyFile: (s3: _t.Client, props: CopyFileProps) => Promise<import("@aws-sdk/client-s3").CopyObjectCommandOutput>;
|
|
97
|
+
/**
|
|
98
|
+
* List files in S3 by prefix.
|
|
99
|
+
*
|
|
100
|
+
* Returns file keys sorted by LastModified (newest first).
|
|
101
|
+
*
|
|
102
|
+
* @example
|
|
103
|
+
* ```ts
|
|
104
|
+
* const backups = await S3.listFiles(s3, {
|
|
105
|
+
* prefix: "search/index.backup",
|
|
106
|
+
* limit: 10,
|
|
107
|
+
* });
|
|
108
|
+
* // Returns: ["search/index.backup.2024-01-06.sqlite", ...]
|
|
109
|
+
* ```
|
|
110
|
+
*/
|
|
111
|
+
export declare const listFiles: (s3: _t.Client, props: _t.ListFilesProps) => Promise<string[]>;
|
|
48
112
|
/**
|
|
49
113
|
* Create a new S3 bucket
|
|
50
114
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"domain.d.ts","sourceRoot":"","sources":["../../../../src/server/aws/s3/domain.ts"],"names":[],"mappings":"AAAA,OAAO,EAgBL,KAAK,yBAAyB,EAC9B,KAAK,sBAAsB,EAC3B,KAAK,uBAAuB,EAE7B,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAEL,KAAK,aAAa,EACnB,MAAM,4BAA4B,CAAC;AAGpC,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAE9B,eAAO,MAAM,MAAM,GAAI,QAAO,EAAE,CAAC,WAAgB,KAAG,EAAE,CAAC,MAKtD,CAAC;AAEF;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,CAC7B,EAAE,EAAE,EAAE,CAAC,MAAM,EACb,KAAK,EAAE,EAAE,CAAC,iBAAiB,GAC1B,OAAO,CAAC,MAAM,CAAC,CAAC;AACnB,wBAAgB,eAAe,CAC7B,EAAE,EAAE,EAAE,CAAC,MAAM,EACb,KAAK,EAAE,EAAE,CAAC,kBAAkB,GAC3B,OAAO,CAAC,aAAa,CAAC,CAAC;AAC1B,wBAAgB,eAAe,CAC7B,EAAE,EAAE,EAAE,CAAC,MAAM,EACb,KAAK,EAAE,EAAE,CAAC,uBAAuB,GAChC,OAAO,CAAC,EAAE,CAAC,4BAA4B,CAAC,CAAC;AAoD5C;;;;;GAKG;AACH,eAAO,MAAM,UAAU,GAAI,IAAI,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,WAAW,iEAU9D,CAAC;AAMF,MAAM,MAAM,SAAS,GAAG;IACtB,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;;;;;;;;;;OAaG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,eAAO,MAAM,OAAO,GAClB,IAAI,EAAE,CAAC,MAAM,EACb,OAAO,SAAS,KACf,OAAO,CAAC,sBAAsB,CAehC,CAAC;AAEF,eAAO,MAAM,UAAU,GACrB,IAAI,EAAE,CAAC,MAAM,EACb,OAAO,SAAS,KACf,OAAO,CAAC,yBAAyB,CAWnC,CAAC;AAEF,eAAO,MAAM,eAAe,GAC1B,IAAI,EAAE,CAAC,MAAM,EACb,OAAO,SAAS,KACf,OAAO,CAAC,uBAAuB,CAWjC,CAAC;AAMF;;GAEG;AACH,eAAO,MAAM,YAAY,GAAI,IAAI,EAAE,CAAC,MAAM,EAAE,YAAY,MAAM,oEAG7D,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,YAAY,GAAI,IAAI,EAAE,CAAC,MAAM,EAAE,YAAY,MAAM,oEAG7D,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,YAAY,GAAU,IAAI,EAAE,CAAC,MAAM,EAAE,YAAY,MAAM,qBAgBnE,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,GAChC,IAAI,EAAE,CAAC,MAAM,EACb,SAAS,EAAE,CAAC,kBAAkB,qDAkB/B,CAAC;AAMF;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,sBAAsB,GACjC,IAAI,EAAE,CAAC,MAAM,EACb,OAAO,EAAE,CAAC,2BAA2B;;;;EAiCtC,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,uBAAuB,GAClC,IAAI,EAAE,CAAC,MAAM,EACb,OAAO,EAAE,CAAC,4BAA4B,+EAiCvC,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,eAAO,MAAM,cAAc,GAAI,MAAM,MAAM,KAAG,EAAE,CAAC,SAAS,EAAE,GAAG,IAgB9D,CAAC"}
|
|
1
|
+
{"version":3,"file":"domain.d.ts","sourceRoot":"","sources":["../../../../src/server/aws/s3/domain.ts"],"names":[],"mappings":"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"}
|
|
@@ -113,4 +113,11 @@ export type UploadPartProps = {
|
|
|
113
113
|
bucketName?: string;
|
|
114
114
|
};
|
|
115
115
|
export type PresignedPostOpts = PresignedPostOptions;
|
|
116
|
+
export type ListFilesProps = {
|
|
117
|
+
/** Key prefix to filter by (e.g., "search/index.backup") */
|
|
118
|
+
prefix: string;
|
|
119
|
+
/** Max files to return (default 1000) */
|
|
120
|
+
limit?: number;
|
|
121
|
+
bucketName?: string;
|
|
122
|
+
};
|
|
116
123
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/server/aws/s3/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/server/aws/s3/types.ts"],"names":[],"mappings":"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"}
|
package/dist/server/index.cjs
CHANGED
|
@@ -2122,14 +2122,17 @@ var send2 = (ses, email) => {
|
|
|
2122
2122
|
var s3_exports = {};
|
|
2123
2123
|
__export(s3_exports, {
|
|
2124
2124
|
bucketExists: () => bucketExists,
|
|
2125
|
+
copyFile: () => copyFile,
|
|
2125
2126
|
create: () => create6,
|
|
2126
2127
|
createBucket: () => createBucket,
|
|
2127
2128
|
createSignedUrl: () => createSignedUrl,
|
|
2128
2129
|
deleteBucket: () => deleteBucket,
|
|
2129
2130
|
deleteFile: () => deleteFile,
|
|
2131
|
+
fileExists: () => fileExists,
|
|
2130
2132
|
finalizeMultipartUpload: () => finalizeMultipartUpload,
|
|
2131
2133
|
getFile: () => getFile,
|
|
2132
2134
|
getFileMetadata: () => getFileMetadata,
|
|
2135
|
+
listFiles: () => listFiles,
|
|
2133
2136
|
migrateBucketContents: () => migrateBucketContents,
|
|
2134
2137
|
prepareMultipartUpload: () => prepareMultipartUpload,
|
|
2135
2138
|
recordsFromSqs: () => recordsFromSqs,
|
|
@@ -2250,6 +2253,50 @@ var getFileMetadata = async (s3, props) => {
|
|
|
2250
2253
|
throw err;
|
|
2251
2254
|
}
|
|
2252
2255
|
};
|
|
2256
|
+
var fileExists = async (s3, props) => {
|
|
2257
|
+
try {
|
|
2258
|
+
const Bucket = getBucketNameOrThrow(props.bucketName, s3.bucketName);
|
|
2259
|
+
await s3.client.send(new clientS3.HeadObjectCommand({ Bucket, Key: props.key }));
|
|
2260
|
+
return true;
|
|
2261
|
+
} catch (err) {
|
|
2262
|
+
const awsError = err;
|
|
2263
|
+
if (awsError.$metadata?.httpStatusCode === 404) {
|
|
2264
|
+
return false;
|
|
2265
|
+
}
|
|
2266
|
+
throw err;
|
|
2267
|
+
}
|
|
2268
|
+
};
|
|
2269
|
+
var copyFile = async (s3, props) => {
|
|
2270
|
+
const srcBucket = getBucketNameOrThrow(props.src.bucket, s3.bucketName);
|
|
2271
|
+
const dstBucket = getBucketNameOrThrow(props.dest.bucket, s3.bucketName);
|
|
2272
|
+
const command = new clientS3.CopyObjectCommand({
|
|
2273
|
+
CopySource: `${srcBucket}/${props.src.key}`,
|
|
2274
|
+
Bucket: dstBucket,
|
|
2275
|
+
Key: props.dest.key
|
|
2276
|
+
});
|
|
2277
|
+
try {
|
|
2278
|
+
return await s3.client.send(command);
|
|
2279
|
+
} catch (err) {
|
|
2280
|
+
console.log(`[error] [s3] [copyFile] failed. Input:`);
|
|
2281
|
+
console.dir(props, { depth: 100 });
|
|
2282
|
+
throw err;
|
|
2283
|
+
}
|
|
2284
|
+
};
|
|
2285
|
+
var listFiles = async (s3, props) => {
|
|
2286
|
+
const Bucket = getBucketNameOrThrow(props.bucketName, s3.bucketName);
|
|
2287
|
+
const command = new clientS3.ListObjectsV2Command({
|
|
2288
|
+
MaxKeys: props.limit ?? 1e3,
|
|
2289
|
+
Prefix: props.prefix,
|
|
2290
|
+
Bucket
|
|
2291
|
+
});
|
|
2292
|
+
const result = await s3.client.send(command);
|
|
2293
|
+
const contents = result.Contents ?? [];
|
|
2294
|
+
return contents.sort((a, b) => {
|
|
2295
|
+
const aTime = a.LastModified?.getTime() ?? 0;
|
|
2296
|
+
const bTime = b.LastModified?.getTime() ?? 0;
|
|
2297
|
+
return bTime - aTime;
|
|
2298
|
+
}).map((obj) => obj.Key).filter(Boolean);
|
|
2299
|
+
};
|
|
2253
2300
|
var createBucket = (s3, bucketName) => {
|
|
2254
2301
|
const command = new clientS3.CreateBucketCommand({ Bucket: bucketName });
|
|
2255
2302
|
return s3.client.send(command);
|
package/dist/server/index.js
CHANGED
|
@@ -8,7 +8,7 @@ import signale from 'signale';
|
|
|
8
8
|
import { SNSClient, PublishCommand } from '@aws-sdk/client-sns';
|
|
9
9
|
import { SQSClient, SendMessageCommand } from '@aws-sdk/client-sqs';
|
|
10
10
|
import { SESClient, SendEmailCommand } from '@aws-sdk/client-ses';
|
|
11
|
-
import { S3Client, GetObjectCommand, PutObjectCommand, DeleteObjectCommand, HeadObjectCommand,
|
|
11
|
+
import { S3Client, GetObjectCommand, PutObjectCommand, DeleteObjectCommand, HeadObjectCommand, CopyObjectCommand, ListObjectsV2Command, CreateBucketCommand, DeleteBucketCommand, HeadBucketCommand, CreateMultipartUploadCommand, UploadPartCommand, ListPartsCommand, CompleteMultipartUploadCommand } from '@aws-sdk/client-s3';
|
|
12
12
|
import { getSignedUrl } from '@aws-sdk/s3-request-presigner';
|
|
13
13
|
import { createPresignedPost } from '@aws-sdk/s3-presigned-post';
|
|
14
14
|
|
|
@@ -2114,14 +2114,17 @@ var send2 = (ses, email) => {
|
|
|
2114
2114
|
var s3_exports = {};
|
|
2115
2115
|
__export(s3_exports, {
|
|
2116
2116
|
bucketExists: () => bucketExists,
|
|
2117
|
+
copyFile: () => copyFile,
|
|
2117
2118
|
create: () => create6,
|
|
2118
2119
|
createBucket: () => createBucket,
|
|
2119
2120
|
createSignedUrl: () => createSignedUrl,
|
|
2120
2121
|
deleteBucket: () => deleteBucket,
|
|
2121
2122
|
deleteFile: () => deleteFile,
|
|
2123
|
+
fileExists: () => fileExists,
|
|
2122
2124
|
finalizeMultipartUpload: () => finalizeMultipartUpload,
|
|
2123
2125
|
getFile: () => getFile,
|
|
2124
2126
|
getFileMetadata: () => getFileMetadata,
|
|
2127
|
+
listFiles: () => listFiles,
|
|
2125
2128
|
migrateBucketContents: () => migrateBucketContents,
|
|
2126
2129
|
prepareMultipartUpload: () => prepareMultipartUpload,
|
|
2127
2130
|
recordsFromSqs: () => recordsFromSqs,
|
|
@@ -2242,6 +2245,50 @@ var getFileMetadata = async (s3, props) => {
|
|
|
2242
2245
|
throw err;
|
|
2243
2246
|
}
|
|
2244
2247
|
};
|
|
2248
|
+
var fileExists = async (s3, props) => {
|
|
2249
|
+
try {
|
|
2250
|
+
const Bucket = getBucketNameOrThrow(props.bucketName, s3.bucketName);
|
|
2251
|
+
await s3.client.send(new HeadObjectCommand({ Bucket, Key: props.key }));
|
|
2252
|
+
return true;
|
|
2253
|
+
} catch (err) {
|
|
2254
|
+
const awsError = err;
|
|
2255
|
+
if (awsError.$metadata?.httpStatusCode === 404) {
|
|
2256
|
+
return false;
|
|
2257
|
+
}
|
|
2258
|
+
throw err;
|
|
2259
|
+
}
|
|
2260
|
+
};
|
|
2261
|
+
var copyFile = async (s3, props) => {
|
|
2262
|
+
const srcBucket = getBucketNameOrThrow(props.src.bucket, s3.bucketName);
|
|
2263
|
+
const dstBucket = getBucketNameOrThrow(props.dest.bucket, s3.bucketName);
|
|
2264
|
+
const command = new CopyObjectCommand({
|
|
2265
|
+
CopySource: `${srcBucket}/${props.src.key}`,
|
|
2266
|
+
Bucket: dstBucket,
|
|
2267
|
+
Key: props.dest.key
|
|
2268
|
+
});
|
|
2269
|
+
try {
|
|
2270
|
+
return await s3.client.send(command);
|
|
2271
|
+
} catch (err) {
|
|
2272
|
+
console.log(`[error] [s3] [copyFile] failed. Input:`);
|
|
2273
|
+
console.dir(props, { depth: 100 });
|
|
2274
|
+
throw err;
|
|
2275
|
+
}
|
|
2276
|
+
};
|
|
2277
|
+
var listFiles = async (s3, props) => {
|
|
2278
|
+
const Bucket = getBucketNameOrThrow(props.bucketName, s3.bucketName);
|
|
2279
|
+
const command = new ListObjectsV2Command({
|
|
2280
|
+
MaxKeys: props.limit ?? 1e3,
|
|
2281
|
+
Prefix: props.prefix,
|
|
2282
|
+
Bucket
|
|
2283
|
+
});
|
|
2284
|
+
const result = await s3.client.send(command);
|
|
2285
|
+
const contents = result.Contents ?? [];
|
|
2286
|
+
return contents.sort((a, b) => {
|
|
2287
|
+
const aTime = a.LastModified?.getTime() ?? 0;
|
|
2288
|
+
const bTime = b.LastModified?.getTime() ?? 0;
|
|
2289
|
+
return bTime - aTime;
|
|
2290
|
+
}).map((obj) => obj.Key).filter(Boolean);
|
|
2291
|
+
};
|
|
2245
2292
|
var createBucket = (s3, bucketName) => {
|
|
2246
2293
|
const command = new CreateBucketCommand({ Bucket: bucketName });
|
|
2247
2294
|
return s3.client.send(command);
|