@cloud-cli/s3mini 1.42.0
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/LICENSE +21 -0
- package/README.md +14 -0
- package/dist/auth/sigv4.d.ts +16 -0
- package/dist/auth/sigv4.js +97 -0
- package/dist/auth/sigv4.js.map +1 -0
- package/dist/handlers/router.d.ts +4 -0
- package/dist/handlers/router.js +898 -0
- package/dist/handlers/router.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +29 -0
- package/dist/index.js.map +1 -0
- package/dist/replication/worker.d.ts +30 -0
- package/dist/replication/worker.js +122 -0
- package/dist/replication/worker.js.map +1 -0
- package/dist/storage/s3mini.d.ts +157 -0
- package/dist/storage/s3mini.js +960 -0
- package/dist/storage/s3mini.js.map +1 -0
- package/dist/test/aws-sdk.test.d.ts +1 -0
- package/dist/test/aws-sdk.test.js +115 -0
- package/dist/test/aws-sdk.test.js.map +1 -0
- package/dist/test/models.test.d.ts +1 -0
- package/dist/test/models.test.js +27 -0
- package/dist/test/models.test.js.map +1 -0
- package/dist/test/router.test.d.ts +1 -0
- package/dist/test/router.test.js +380 -0
- package/dist/test/router.test.js.map +1 -0
- package/dist/test/storage.test.d.ts +1 -0
- package/dist/test/storage.test.js +214 -0
- package/dist/test/storage.test.js.map +1 -0
- package/dist/test/worker.test.d.ts +1 -0
- package/dist/test/worker.test.js +65 -0
- package/dist/test/worker.test.js.map +1 -0
- package/dist/types/aws-s3.d.ts +4 -0
- package/dist/types/aws-s3.js +4 -0
- package/dist/types/aws-s3.js.map +1 -0
- package/dist/types/contracts.d.ts +396 -0
- package/dist/types/contracts.js +4 -0
- package/dist/types/contracts.js.map +1 -0
- package/dist/types/models.d.ts +118 -0
- package/dist/types/models.js +40 -0
- package/dist/types/models.js.map +1 -0
- package/package.json +56 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"s3mini.js","sourceRoot":"","sources":["../../src/storage/s3mini.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
import { CreateBucketCommand, CreateMultipartUploadCommand, CompleteMultipartUploadCommand, CopyObjectCommand, DeleteBucketCommand, DeleteObjectCommand, DeleteObjectsCommand, DeleteBucketTaggingCommand, DeleteObjectTaggingCommand, GetObjectCommand, GetBucketTaggingCommand, GetBucketVersioningCommand, GetObjectTaggingCommand, HeadBucketCommand, HeadObjectCommand, ListObjectsV2Command, PutObjectCommand, PutBucketTaggingCommand, PutBucketVersioningCommand, PutObjectTaggingCommand, UploadPartCommand, S3Client, } from '@aws-sdk/client-s3';
|
|
2
|
+
import crypto from 'node:crypto';
|
|
3
|
+
import Fastify from 'fastify';
|
|
4
|
+
import { afterEach, beforeEach, describe, expect, it } from 'vitest';
|
|
5
|
+
import { registerRoutes } from '../handlers/router.js';
|
|
6
|
+
import { S3Mini } from '../storage/s3mini.js';
|
|
7
|
+
describe('AWS SDK v3 compatibility', () => {
|
|
8
|
+
let app;
|
|
9
|
+
let s3;
|
|
10
|
+
let client;
|
|
11
|
+
let endpoint;
|
|
12
|
+
let bucket;
|
|
13
|
+
beforeEach(async () => {
|
|
14
|
+
process.env.S3MINI_ACCESS_KEY = 's3mini';
|
|
15
|
+
process.env.S3MINI_SECRET_KEY = 's3mini-secret';
|
|
16
|
+
bucket = `sdk-${Date.now()}-${Math.floor(Math.random() * 10000)}`;
|
|
17
|
+
s3 = new S3Mini();
|
|
18
|
+
await s3.init();
|
|
19
|
+
app = Fastify();
|
|
20
|
+
await registerRoutes(app, s3);
|
|
21
|
+
endpoint = await app.listen({ host: '127.0.0.1', port: 0 });
|
|
22
|
+
client = new S3Client({
|
|
23
|
+
endpoint,
|
|
24
|
+
region: 'us-east-1',
|
|
25
|
+
forcePathStyle: true,
|
|
26
|
+
credentials: { accessKeyId: 's3mini', secretAccessKey: 's3mini-secret' },
|
|
27
|
+
});
|
|
28
|
+
});
|
|
29
|
+
afterEach(async () => {
|
|
30
|
+
delete process.env.S3MINI_ACCESS_KEY;
|
|
31
|
+
delete process.env.S3MINI_SECRET_KEY;
|
|
32
|
+
client.destroy();
|
|
33
|
+
await app.close();
|
|
34
|
+
await s3.clearBucket(bucket);
|
|
35
|
+
await s3.close();
|
|
36
|
+
});
|
|
37
|
+
it('supports SDK bucket and object CRUD', async () => {
|
|
38
|
+
await client.send(new CreateBucketCommand({ Bucket: bucket }));
|
|
39
|
+
await client.send(new HeadBucketCommand({ Bucket: bucket }));
|
|
40
|
+
await client.send(new PutObjectCommand({ Bucket: bucket, Key: 'sdk.txt', Body: 'hello SDK', ContentType: 'text/plain', Metadata: { color: 'blue' }, CacheControl: 'max-age=60' }));
|
|
41
|
+
await client.send(new PutObjectCommand({ Bucket: bucket, Key: 'a.txt', Body: 'a' }));
|
|
42
|
+
await client.send(new PutObjectCommand({ Bucket: bucket, Key: 'b.txt', Body: 'b' }));
|
|
43
|
+
const listed = await client.send(new ListObjectsV2Command({ Bucket: bucket }));
|
|
44
|
+
expect(listed.Contents?.map(object => object.Key)).toEqual(['a.txt', 'b.txt', 'sdk.txt']);
|
|
45
|
+
const firstPage = await client.send(new ListObjectsV2Command({ Bucket: bucket, MaxKeys: 1 }));
|
|
46
|
+
expect(firstPage.IsTruncated).toBe(true);
|
|
47
|
+
expect(firstPage.NextContinuationToken).toBeTruthy();
|
|
48
|
+
const secondPage = await client.send(new ListObjectsV2Command({ Bucket: bucket, MaxKeys: 1, ContinuationToken: firstPage.NextContinuationToken }));
|
|
49
|
+
expect(secondPage.Contents?.map(object => object.Key)).toEqual(['b.txt']);
|
|
50
|
+
const object = await client.send(new GetObjectCommand({ Bucket: bucket, Key: 'sdk.txt' }));
|
|
51
|
+
expect(await object.Body?.transformToString()).toBe('hello SDK');
|
|
52
|
+
const head = await client.send(new HeadObjectCommand({ Bucket: bucket, Key: 'sdk.txt' }));
|
|
53
|
+
expect(head.ContentType).toBe('text/plain');
|
|
54
|
+
expect(head.CacheControl).toBe('max-age=60');
|
|
55
|
+
expect(head.Metadata).toEqual({ color: 'blue' });
|
|
56
|
+
await client.send(new GetObjectCommand({ Bucket: bucket, Key: 'sdk.txt', IfMatch: head.ETag }));
|
|
57
|
+
const ranged = await client.send(new GetObjectCommand({ Bucket: bucket, Key: 'sdk.txt', Range: 'bytes=1-3' }));
|
|
58
|
+
expect(await ranged.Body?.transformToString()).toBe('ell');
|
|
59
|
+
const checksumBody = 'checksum SDK';
|
|
60
|
+
const checksum = crypto.createHash('sha256').update(checksumBody).digest('base64');
|
|
61
|
+
const checksumPut = await client.send(new PutObjectCommand({ Bucket: bucket, Key: 'checksum.txt', Body: checksumBody, ChecksumSHA256: checksum }));
|
|
62
|
+
expect(checksumPut.ChecksumSHA256).toBe(checksum);
|
|
63
|
+
const copied = await client.send(new CopyObjectCommand({ Bucket: bucket, CopySource: `${bucket}/sdk.txt`, Key: 'copied.txt' }));
|
|
64
|
+
expect(copied.CopyObjectResult?.ETag).toBeTruthy();
|
|
65
|
+
const copiedObject = await client.send(new GetObjectCommand({ Bucket: bucket, Key: 'copied.txt' }));
|
|
66
|
+
expect(await copiedObject.Body?.transformToString()).toBe('hello SDK');
|
|
67
|
+
const copiedHead = await client.send(new HeadObjectCommand({ Bucket: bucket, Key: 'copied.txt' }));
|
|
68
|
+
expect(copiedHead.Metadata).toEqual({ color: 'blue' });
|
|
69
|
+
await client.send(new DeleteObjectCommand({ Bucket: bucket, Key: 'sdk.txt' }));
|
|
70
|
+
const batchDelete = await client.send(new DeleteObjectsCommand({ Bucket: bucket, Delete: { Objects: [{ Key: 'a.txt' }, { Key: 'b.txt' }] } }));
|
|
71
|
+
expect(batchDelete.Deleted?.map(item => item.Key)).toEqual(['a.txt', 'b.txt']);
|
|
72
|
+
await client.send(new DeleteObjectCommand({ Bucket: bucket, Key: 'copied.txt' }));
|
|
73
|
+
await client.send(new DeleteObjectCommand({ Bucket: bucket, Key: 'checksum.txt' }));
|
|
74
|
+
await client.send(new DeleteObjectCommand({ Bucket: bucket, Key: 'already-missing.txt' }));
|
|
75
|
+
await client.send(new DeleteBucketCommand({ Bucket: bucket }));
|
|
76
|
+
});
|
|
77
|
+
it('authenticates using a persisted access key', async () => {
|
|
78
|
+
const credentials = await s3.createAccessKey('sdk-persisted');
|
|
79
|
+
delete process.env.S3MINI_ACCESS_KEY;
|
|
80
|
+
delete process.env.S3MINI_SECRET_KEY;
|
|
81
|
+
const persistedClient = new S3Client({ endpoint, region: 'us-east-1', forcePathStyle: true, credentials });
|
|
82
|
+
await persistedClient.send(new CreateBucketCommand({ Bucket: bucket }));
|
|
83
|
+
await persistedClient.send(new PutObjectCommand({ Bucket: bucket, Key: 'persisted.txt', Body: 'persisted' }));
|
|
84
|
+
persistedClient.destroy();
|
|
85
|
+
await s3.setAccessKeyStatus(credentials.accessKeyId, 'Disabled');
|
|
86
|
+
});
|
|
87
|
+
it('supports SDK multipart upload commands', async () => {
|
|
88
|
+
await client.send(new CreateBucketCommand({ Bucket: bucket }));
|
|
89
|
+
const initiated = await client.send(new CreateMultipartUploadCommand({ Bucket: bucket, Key: 'multipart.txt' }));
|
|
90
|
+
expect(initiated.UploadId).toBeTruthy();
|
|
91
|
+
const part = await client.send(new UploadPartCommand({ Bucket: bucket, Key: 'multipart.txt', UploadId: initiated.UploadId, PartNumber: 1, Body: 'multipart SDK' }));
|
|
92
|
+
expect(part.ETag).toBeTruthy();
|
|
93
|
+
await client.send(new CompleteMultipartUploadCommand({
|
|
94
|
+
Bucket: bucket,
|
|
95
|
+
Key: 'multipart.txt',
|
|
96
|
+
UploadId: initiated.UploadId,
|
|
97
|
+
MultipartUpload: { Parts: [{ PartNumber: 1, ETag: part.ETag }] },
|
|
98
|
+
}));
|
|
99
|
+
const object = await client.send(new GetObjectCommand({ Bucket: bucket, Key: 'multipart.txt' }));
|
|
100
|
+
expect(await object.Body?.transformToString()).toBe('multipart SDK');
|
|
101
|
+
});
|
|
102
|
+
it('supports SDK tagging and versioning commands', async () => {
|
|
103
|
+
await client.send(new CreateBucketCommand({ Bucket: bucket }));
|
|
104
|
+
await client.send(new PutBucketTaggingCommand({ Bucket: bucket, Tagging: { TagSet: [{ Key: 'team', Value: 'storage' }] } }));
|
|
105
|
+
expect((await client.send(new GetBucketTaggingCommand({ Bucket: bucket }))).TagSet).toEqual([{ Key: 'team', Value: 'storage' }]);
|
|
106
|
+
await client.send(new DeleteBucketTaggingCommand({ Bucket: bucket }));
|
|
107
|
+
await client.send(new PutBucketVersioningCommand({ Bucket: bucket, VersioningConfiguration: { Status: 'Enabled' } }));
|
|
108
|
+
expect((await client.send(new GetBucketVersioningCommand({ Bucket: bucket }))).Status).toBe('Enabled');
|
|
109
|
+
await client.send(new PutObjectCommand({ Bucket: bucket, Key: 'tagged.txt', Body: 'tagged' }));
|
|
110
|
+
await client.send(new PutObjectTaggingCommand({ Bucket: bucket, Key: 'tagged.txt', Tagging: { TagSet: [{ Key: 'kind', Value: 'test' }] } }));
|
|
111
|
+
expect((await client.send(new GetObjectTaggingCommand({ Bucket: bucket, Key: 'tagged.txt' }))).TagSet).toEqual([{ Key: 'kind', Value: 'test' }]);
|
|
112
|
+
await client.send(new DeleteObjectTaggingCommand({ Bucket: bucket, Key: 'tagged.txt' }));
|
|
113
|
+
});
|
|
114
|
+
});
|
|
115
|
+
//# sourceMappingURL=aws-sdk.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aws-sdk.test.js","sourceRoot":"","sources":["../../src/test/aws-sdk.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { describe, expect, it } from 'vitest';
|
|
2
|
+
import { COPY_SOURCE_MAX, DEFAULT_OWNER_ID, S3Error, generateETag, generateVersionId } from '../types/models.js';
|
|
3
|
+
describe('S3 model helpers', () => {
|
|
4
|
+
it('creates an S3 error with XML output', () => {
|
|
5
|
+
const error = new S3Error('NoSuchKey', 'missing', 404, 'bucket', 'key');
|
|
6
|
+
const xml = error.toResponseXml('request-id');
|
|
7
|
+
expect(error.httpCode).toBe(404);
|
|
8
|
+
expect(xml).toContain('<Code>NoSuchKey</Code>');
|
|
9
|
+
expect(xml).toContain('<BucketName>bucket</BucketName>');
|
|
10
|
+
expect(xml).toContain('<KeyName>key</KeyName>');
|
|
11
|
+
});
|
|
12
|
+
it('escapes XML error text', () => {
|
|
13
|
+
expect(new S3Error('Invalid', '<bad>&').toResponseXml('id')).toContain('<bad>&');
|
|
14
|
+
});
|
|
15
|
+
it('generates deterministic quoted MD5 ETags', () => {
|
|
16
|
+
expect(generateETag(Buffer.from('hello'))).toBe('"5d41402abc4b2a76b9719d911017c592"');
|
|
17
|
+
});
|
|
18
|
+
it('generates 33-character version IDs', () => {
|
|
19
|
+
const versionId = generateVersionId();
|
|
20
|
+
expect(versionId).toMatch(/^[A-Za-z0-9]{32}\+$/);
|
|
21
|
+
});
|
|
22
|
+
it('defines storage constants', () => {
|
|
23
|
+
expect(DEFAULT_OWNER_ID).toHaveLength(24);
|
|
24
|
+
expect(COPY_SOURCE_MAX).toBe(5 * 1024 * 1024);
|
|
25
|
+
});
|
|
26
|
+
});
|
|
27
|
+
//# sourceMappingURL=models.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"models.test.js","sourceRoot":"","sources":["../../src/test/models.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAEjH,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;IAChC,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;QAC7C,MAAM,KAAK,GAAG,IAAI,OAAO,CAAC,WAAW,EAAE,SAAS,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;QACxE,MAAM,GAAG,GAAG,KAAK,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;QAC9C,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACjC,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,wBAAwB,CAAC,CAAC;QAChD,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,iCAAiC,CAAC,CAAC;QACzD,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,wBAAwB,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wBAAwB,EAAE,GAAG,EAAE;QAChC,MAAM,CAAC,IAAI,OAAO,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC;IAC7F,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;QAClD,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC;IACxF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oCAAoC,EAAE,GAAG,EAAE;QAC5C,MAAM,SAAS,GAAG,iBAAiB,EAAE,CAAC;QACtC,MAAM,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2BAA2B,EAAE,GAAG,EAAE;QACnC,MAAM,CAAC,gBAAgB,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;QAC1C,MAAM,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|