@beignet/provider-storage-s3 0.0.1 → 0.0.3
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/CHANGELOG.md +29 -0
- package/README.md +33 -3
- package/dist/index.d.ts +72 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +109 -0
- package/dist/index.js.map +1 -1
- package/package.json +4 -3
- package/src/index.ts +175 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,34 @@
|
|
|
1
1
|
# @beignet/provider-storage-s3
|
|
2
2
|
|
|
3
|
+
## 0.0.3
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 4cb1784: Add first-class upload router primitives, a typed browser upload client, a
|
|
8
|
+
React upload adapter, Next.js upload route helper, S3-compatible direct upload
|
|
9
|
+
signing, devtools upload watcher support, an upload generator, and a
|
|
10
|
+
first-class `beignet make feature` command with optional policy, event, job,
|
|
11
|
+
and upload artifacts for the standard vertical slice. Add first-class job retry
|
|
12
|
+
helpers, outbox retry policy integration, and job retry/dead-letter devtools
|
|
13
|
+
events. Add a Next.js outbox drain route helper and doctor warnings for
|
|
14
|
+
serverless background-work footguns.
|
|
15
|
+
- Updated dependencies [3160184]
|
|
16
|
+
- Updated dependencies [254ef6d]
|
|
17
|
+
- Updated dependencies [4cb1784]
|
|
18
|
+
- Updated dependencies [8bd9085]
|
|
19
|
+
- @beignet/core@0.0.3
|
|
20
|
+
|
|
21
|
+
## 0.0.2
|
|
22
|
+
|
|
23
|
+
### Patch Changes
|
|
24
|
+
|
|
25
|
+
- Updated dependencies [90b29ad]
|
|
26
|
+
- Updated dependencies [07fa19c]
|
|
27
|
+
- Updated dependencies [08bae67]
|
|
28
|
+
- Updated dependencies [730a818]
|
|
29
|
+
- Updated dependencies [a79f60c]
|
|
30
|
+
- @beignet/core@0.0.2
|
|
31
|
+
|
|
3
32
|
## 0.0.1
|
|
4
33
|
|
|
5
34
|
- Initial Beignet release under the `@beignet` npm scope.
|
package/README.md
CHANGED
|
@@ -96,6 +96,35 @@ const object = await ctx.ports.storage.get("avatars/user_123.png");
|
|
|
96
96
|
const url = await ctx.ports.storage.publicUrl("avatars/user_123.png");
|
|
97
97
|
```
|
|
98
98
|
|
|
99
|
+
## Direct upload signer
|
|
100
|
+
|
|
101
|
+
Use `createS3UploadSigner(...)` with `@beignet/core/uploads` when browsers
|
|
102
|
+
should upload directly to S3 or an S3-compatible service:
|
|
103
|
+
|
|
104
|
+
```typescript
|
|
105
|
+
import { createUploadRouter } from "@beignet/core/uploads";
|
|
106
|
+
import { createS3UploadSigner } from "@beignet/provider-storage-s3";
|
|
107
|
+
|
|
108
|
+
const uploadRouter = createUploadRouter({
|
|
109
|
+
uploads: postUploads,
|
|
110
|
+
ctx: () => server.createContextFromNext(),
|
|
111
|
+
storage: server.ports.storage,
|
|
112
|
+
signer: createS3UploadSigner({
|
|
113
|
+
bucket: "my-app-assets",
|
|
114
|
+
region: "auto",
|
|
115
|
+
endpoint: "https://<account-id>.r2.cloudflarestorage.com",
|
|
116
|
+
credentials: {
|
|
117
|
+
accessKeyId: process.env.R2_ACCESS_KEY_ID!,
|
|
118
|
+
secretAccessKey: process.env.R2_SECRET_ACCESS_KEY!,
|
|
119
|
+
},
|
|
120
|
+
keyPrefix: "production",
|
|
121
|
+
}),
|
|
122
|
+
});
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
The signer returns presigned PUT URLs with the content type, cache control, and
|
|
126
|
+
Beignet storage metadata headers the browser must send.
|
|
127
|
+
|
|
99
128
|
## Visibility
|
|
100
129
|
|
|
101
130
|
`visibility` is stored as reserved object metadata so `publicUrl(...)` can
|
|
@@ -132,9 +161,10 @@ helpers apply the configured `STORAGE_S3_KEY_PREFIX`.
|
|
|
132
161
|
## Devtools
|
|
133
162
|
|
|
134
163
|
When `ctx.ports.devtools` is installed, the provider records storage
|
|
135
|
-
operations under the `storage` watcher
|
|
136
|
-
|
|
137
|
-
bodies and metadata values
|
|
164
|
+
operations under the `storage` watcher and direct upload signing under the
|
|
165
|
+
`uploads` watcher. Events include operation name, key, bucket, duration, object
|
|
166
|
+
size, visibility, and whether a lookup hit. Object bodies and metadata values
|
|
167
|
+
are never recorded.
|
|
138
168
|
|
|
139
169
|
## License
|
|
140
170
|
|
package/dist/index.d.ts
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
|
-
import { S3Client, type S3ClientConfig } from "@aws-sdk/client-s3";
|
|
1
|
+
import { PutObjectCommand, S3Client, type S3ClientConfig } from "@aws-sdk/client-s3";
|
|
2
2
|
import type { StoragePort } from "@beignet/core/ports";
|
|
3
3
|
import { type ProviderInstrumentationTarget } from "@beignet/core/providers";
|
|
4
|
+
import type { UploadSignerPort } from "@beignet/core/uploads";
|
|
4
5
|
import { z } from "zod";
|
|
6
|
+
/**
|
|
7
|
+
* Storage port types re-exported for S3 storage consumers.
|
|
8
|
+
*/
|
|
5
9
|
export type { StorageBody, StorageMetadata, StorageObject, StorageObjectBody, StoragePort, StorageVisibility, } from "@beignet/core/ports";
|
|
6
10
|
declare const S3StorageConfigSchema: z.ZodObject<{
|
|
7
11
|
BUCKET: z.ZodString;
|
|
@@ -17,8 +21,17 @@ declare const S3StorageConfigSchema: z.ZodObject<{
|
|
|
17
21
|
}>, z.ZodTransform<boolean, "true" | "false">>>;
|
|
18
22
|
KEY_PREFIX: z.ZodOptional<z.ZodString>;
|
|
19
23
|
}, z.core.$strip>;
|
|
24
|
+
/**
|
|
25
|
+
* S3 storage provider config loaded from `STORAGE_S3_*` env vars.
|
|
26
|
+
*/
|
|
20
27
|
export type S3StorageConfig = z.infer<typeof S3StorageConfigSchema>;
|
|
28
|
+
/**
|
|
29
|
+
* Minimal S3-compatible client shape required by this provider.
|
|
30
|
+
*/
|
|
21
31
|
export type S3StorageClient = Pick<S3Client, "send">;
|
|
32
|
+
/**
|
|
33
|
+
* Options for creating an S3-compatible storage port directly.
|
|
34
|
+
*/
|
|
22
35
|
export interface S3StorageOptions {
|
|
23
36
|
/**
|
|
24
37
|
* S3 bucket name.
|
|
@@ -69,6 +82,32 @@ export interface S3StorageOptions {
|
|
|
69
82
|
*/
|
|
70
83
|
instrumentation?: ProviderInstrumentationTarget;
|
|
71
84
|
}
|
|
85
|
+
/**
|
|
86
|
+
* Options for creating an S3-compatible direct upload signer.
|
|
87
|
+
*/
|
|
88
|
+
export interface S3UploadSignerOptions extends S3StorageOptions {
|
|
89
|
+
/**
|
|
90
|
+
* Number of seconds before generated direct upload URLs expire.
|
|
91
|
+
*
|
|
92
|
+
* @default 900
|
|
93
|
+
*/
|
|
94
|
+
expiresInSeconds?: number;
|
|
95
|
+
/**
|
|
96
|
+
* Clock used for deterministic tests.
|
|
97
|
+
*/
|
|
98
|
+
now?: () => Date;
|
|
99
|
+
/**
|
|
100
|
+
* Test hook for replacing AWS SDK signing.
|
|
101
|
+
*/
|
|
102
|
+
signUrl?: (args: {
|
|
103
|
+
client: S3StorageClient;
|
|
104
|
+
command: PutObjectCommand;
|
|
105
|
+
expiresInSeconds: number;
|
|
106
|
+
}) => Promise<string> | string;
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Options for creating an env-backed S3-compatible storage provider.
|
|
110
|
+
*/
|
|
72
111
|
export interface S3StorageProviderOptions extends Omit<S3StorageOptions, "bucket" | "client" | "instrumentation"> {
|
|
73
112
|
/**
|
|
74
113
|
* Provider name. Defaults to "storage-s3".
|
|
@@ -83,9 +122,32 @@ export interface S3StorageProviderOptions extends Omit<S3StorageOptions, "bucket
|
|
|
83
122
|
*/
|
|
84
123
|
createClient?: (config: S3StorageConfig) => S3StorageClient;
|
|
85
124
|
}
|
|
125
|
+
/**
|
|
126
|
+
* Create a storage port backed by S3 or an S3-compatible object store.
|
|
127
|
+
*
|
|
128
|
+
* Supports AWS S3, Cloudflare R2, MinIO, Spaces, and similar stores by passing
|
|
129
|
+
* `endpoint`, `forcePathStyle`, credentials, and optional `keyPrefix`.
|
|
130
|
+
*/
|
|
86
131
|
export declare function createS3Storage(options: S3StorageOptions): StoragePort;
|
|
132
|
+
/**
|
|
133
|
+
* Create an S3-compatible direct upload signer.
|
|
134
|
+
*
|
|
135
|
+
* The signer creates presigned PUT URLs for AWS S3, Cloudflare R2, MinIO,
|
|
136
|
+
* Spaces, and similar object stores. Use it with `createUploadRouter(...)`
|
|
137
|
+
* from `@beignet/core/uploads`.
|
|
138
|
+
*/
|
|
139
|
+
export declare function createS3UploadSigner(options: S3UploadSignerOptions): UploadSignerPort;
|
|
140
|
+
/**
|
|
141
|
+
* Ports contributed by the S3 storage provider.
|
|
142
|
+
*/
|
|
87
143
|
export interface S3StorageProviderPorts {
|
|
144
|
+
/**
|
|
145
|
+
* Beignet storage port backed by S3-compatible storage.
|
|
146
|
+
*/
|
|
88
147
|
storage: StoragePort;
|
|
148
|
+
/**
|
|
149
|
+
* Raw client and key helpers for escape-hatch integrations.
|
|
150
|
+
*/
|
|
89
151
|
s3Storage: {
|
|
90
152
|
client: S3StorageClient;
|
|
91
153
|
bucket: string;
|
|
@@ -94,6 +156,12 @@ export interface S3StorageProviderPorts {
|
|
|
94
156
|
objectPrefix(prefix: string): string;
|
|
95
157
|
};
|
|
96
158
|
}
|
|
159
|
+
/**
|
|
160
|
+
* Create an env-backed S3-compatible storage provider.
|
|
161
|
+
*
|
|
162
|
+
* Reads `STORAGE_S3_*` env vars, contributes `ports.storage`, and exposes
|
|
163
|
+
* `ports.s3Storage` for raw client access and key-prefix helpers.
|
|
164
|
+
*/
|
|
97
165
|
export declare function createS3StorageProvider(options?: S3StorageProviderOptions): import("@beignet/core/providers").ServiceProvider<unknown, z.ZodObject<{
|
|
98
166
|
ACCESS_KEY_ID: z.ZodOptional<z.ZodString>;
|
|
99
167
|
SECRET_ACCESS_KEY: z.ZodOptional<z.ZodString>;
|
|
@@ -120,6 +188,9 @@ export declare function createS3StorageProvider(options?: S3StorageProviderOptio
|
|
|
120
188
|
objectPrefix(prefix: string): string;
|
|
121
189
|
};
|
|
122
190
|
}>;
|
|
191
|
+
/**
|
|
192
|
+
* Default env-backed S3-compatible storage provider.
|
|
193
|
+
*/
|
|
123
194
|
export declare const s3StorageProvider: import("@beignet/core/providers").ServiceProvider<unknown, z.ZodObject<{
|
|
124
195
|
ACCESS_KEY_ID: z.ZodOptional<z.ZodString>;
|
|
125
196
|
SECRET_ACCESS_KEY: z.ZodOptional<z.ZodString>;
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Readable } from "node:stream";
|
|
2
2
|
import { DeleteObjectCommand, GetObjectCommand, HeadObjectCommand, PutObjectCommand, S3Client, } from "@aws-sdk/client-s3";
|
|
3
|
+
import { getSignedUrl } from "@aws-sdk/s3-request-presigner";
|
|
3
4
|
import { createProvider, createProviderInstrumentation, } from "@beignet/core/providers";
|
|
4
5
|
import { z } from "zod";
|
|
5
6
|
const visibilityMetadataKey = "beignet-visibility";
|
|
@@ -244,6 +245,12 @@ function metadataForPut(metadata, visibility) {
|
|
|
244
245
|
[visibilityMetadataKey]: visibility,
|
|
245
246
|
};
|
|
246
247
|
}
|
|
248
|
+
function metadataHeaders(metadata) {
|
|
249
|
+
return Object.fromEntries(Object.entries(metadata).map(([key, value]) => [
|
|
250
|
+
`x-amz-meta-${key.toLowerCase()}`,
|
|
251
|
+
value,
|
|
252
|
+
]));
|
|
253
|
+
}
|
|
247
254
|
function objectFromHead(key, output) {
|
|
248
255
|
return {
|
|
249
256
|
key,
|
|
@@ -285,6 +292,12 @@ function createDefaultClient(options) {
|
|
|
285
292
|
: {}),
|
|
286
293
|
});
|
|
287
294
|
}
|
|
295
|
+
/**
|
|
296
|
+
* Create a storage port backed by S3 or an S3-compatible object store.
|
|
297
|
+
*
|
|
298
|
+
* Supports AWS S3, Cloudflare R2, MinIO, Spaces, and similar stores by passing
|
|
299
|
+
* `endpoint`, `forcePathStyle`, credentials, and optional `keyPrefix`.
|
|
300
|
+
*/
|
|
288
301
|
export function createS3Storage(options) {
|
|
289
302
|
const client = options.client ?? createDefaultClient(options);
|
|
290
303
|
const keyPrefix = normalizeKeyPrefix(options.keyPrefix);
|
|
@@ -560,6 +573,99 @@ export function createS3Storage(options) {
|
|
|
560
573
|
},
|
|
561
574
|
};
|
|
562
575
|
}
|
|
576
|
+
/**
|
|
577
|
+
* Create an S3-compatible direct upload signer.
|
|
578
|
+
*
|
|
579
|
+
* The signer creates presigned PUT URLs for AWS S3, Cloudflare R2, MinIO,
|
|
580
|
+
* Spaces, and similar object stores. Use it with `createUploadRouter(...)`
|
|
581
|
+
* from `@beignet/core/uploads`.
|
|
582
|
+
*/
|
|
583
|
+
export function createS3UploadSigner(options) {
|
|
584
|
+
const client = options.client ?? createDefaultClient(options);
|
|
585
|
+
const keyPrefix = normalizeKeyPrefix(options.keyPrefix);
|
|
586
|
+
const expiresInSeconds = options.expiresInSeconds ?? 900;
|
|
587
|
+
const now = options.now ?? (() => new Date());
|
|
588
|
+
const instrumentation = createProviderInstrumentation(options.instrumentation, {
|
|
589
|
+
providerName: "storage-s3",
|
|
590
|
+
watcher: "uploads",
|
|
591
|
+
});
|
|
592
|
+
return {
|
|
593
|
+
async sign(args) {
|
|
594
|
+
const startedAt = Date.now();
|
|
595
|
+
const s3Key = objectKey(keyPrefix, args.key);
|
|
596
|
+
const metadata = metadataForPut(args.storage.metadata, args.storage.visibility);
|
|
597
|
+
const command = new PutObjectCommand({
|
|
598
|
+
Bucket: options.bucket,
|
|
599
|
+
Key: s3Key,
|
|
600
|
+
ContentType: args.file.contentType,
|
|
601
|
+
...(args.storage.cacheControl !== undefined
|
|
602
|
+
? { CacheControl: args.storage.cacheControl }
|
|
603
|
+
: {}),
|
|
604
|
+
Metadata: metadata,
|
|
605
|
+
});
|
|
606
|
+
try {
|
|
607
|
+
const url = await (options.signUrl
|
|
608
|
+
? options.signUrl({ client, command, expiresInSeconds })
|
|
609
|
+
: getSignedUrl(client, command, {
|
|
610
|
+
expiresIn: expiresInSeconds,
|
|
611
|
+
}));
|
|
612
|
+
const expiresAt = new Date(now().getTime() + expiresInSeconds * 1000).toISOString();
|
|
613
|
+
instrumentation.custom({
|
|
614
|
+
name: "upload.sign.completed",
|
|
615
|
+
label: "Upload signed",
|
|
616
|
+
summary: args.uploadName,
|
|
617
|
+
details: {
|
|
618
|
+
provider: "s3",
|
|
619
|
+
uploadName: args.uploadName,
|
|
620
|
+
uploadId: args.uploadId,
|
|
621
|
+
key: args.key,
|
|
622
|
+
s3Key,
|
|
623
|
+
bucket: options.bucket,
|
|
624
|
+
contentType: args.file.contentType,
|
|
625
|
+
expiresInSeconds,
|
|
626
|
+
durationMs: Date.now() - startedAt,
|
|
627
|
+
},
|
|
628
|
+
});
|
|
629
|
+
return {
|
|
630
|
+
method: "PUT",
|
|
631
|
+
url,
|
|
632
|
+
headers: {
|
|
633
|
+
"content-type": args.file.contentType,
|
|
634
|
+
...(args.storage.cacheControl !== undefined
|
|
635
|
+
? { "cache-control": args.storage.cacheControl }
|
|
636
|
+
: {}),
|
|
637
|
+
...metadataHeaders(metadata),
|
|
638
|
+
},
|
|
639
|
+
expiresAt,
|
|
640
|
+
};
|
|
641
|
+
}
|
|
642
|
+
catch (error) {
|
|
643
|
+
instrumentation.custom({
|
|
644
|
+
name: "upload.sign.failed",
|
|
645
|
+
label: "Upload sign failed",
|
|
646
|
+
summary: args.uploadName,
|
|
647
|
+
details: {
|
|
648
|
+
provider: "s3",
|
|
649
|
+
uploadName: args.uploadName,
|
|
650
|
+
uploadId: args.uploadId,
|
|
651
|
+
key: args.key,
|
|
652
|
+
s3Key,
|
|
653
|
+
bucket: options.bucket,
|
|
654
|
+
durationMs: Date.now() - startedAt,
|
|
655
|
+
error: errorMessage(error),
|
|
656
|
+
},
|
|
657
|
+
});
|
|
658
|
+
throw error;
|
|
659
|
+
}
|
|
660
|
+
},
|
|
661
|
+
};
|
|
662
|
+
}
|
|
663
|
+
/**
|
|
664
|
+
* Create an env-backed S3-compatible storage provider.
|
|
665
|
+
*
|
|
666
|
+
* Reads `STORAGE_S3_*` env vars, contributes `ports.storage`, and exposes
|
|
667
|
+
* `ports.s3Storage` for raw client access and key-prefix helpers.
|
|
668
|
+
*/
|
|
563
669
|
export function createS3StorageProvider(options = {}) {
|
|
564
670
|
const ConfigSchema = S3StorageConfigSchema.extend({
|
|
565
671
|
BUCKET: options.bucket !== undefined
|
|
@@ -639,5 +745,8 @@ export function createS3StorageProvider(options = {}) {
|
|
|
639
745
|
},
|
|
640
746
|
});
|
|
641
747
|
}
|
|
748
|
+
/**
|
|
749
|
+
* Default env-backed S3-compatible storage provider.
|
|
750
|
+
*/
|
|
642
751
|
export const s3StorageProvider = createS3StorageProvider();
|
|
643
752
|
//# sourceMappingURL=index.js.map
|
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/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@beignet/provider-storage-s3",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.3",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "S3-compatible object storage provider for Beignet",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -55,8 +55,9 @@
|
|
|
55
55
|
},
|
|
56
56
|
"dependencies": {
|
|
57
57
|
"@aws-sdk/client-s3": "^3.955.0",
|
|
58
|
-
"
|
|
59
|
-
"@beignet/core": "*"
|
|
58
|
+
"@aws-sdk/s3-request-presigner": "^3.955.0",
|
|
59
|
+
"@beignet/core": "*",
|
|
60
|
+
"zod": "^4.0.0"
|
|
60
61
|
},
|
|
61
62
|
"devDependencies": {
|
|
62
63
|
"@beignet/devtools": "*",
|
package/src/index.ts
CHANGED
|
@@ -7,6 +7,7 @@ import {
|
|
|
7
7
|
S3Client,
|
|
8
8
|
type S3ClientConfig,
|
|
9
9
|
} from "@aws-sdk/client-s3";
|
|
10
|
+
import { getSignedUrl } from "@aws-sdk/s3-request-presigner";
|
|
10
11
|
import type {
|
|
11
12
|
StorageBody,
|
|
12
13
|
StorageMetadata,
|
|
@@ -20,8 +21,12 @@ import {
|
|
|
20
21
|
createProviderInstrumentation,
|
|
21
22
|
type ProviderInstrumentationTarget,
|
|
22
23
|
} from "@beignet/core/providers";
|
|
24
|
+
import type { UploadSignerPort } from "@beignet/core/uploads";
|
|
23
25
|
import { z } from "zod";
|
|
24
26
|
|
|
27
|
+
/**
|
|
28
|
+
* Storage port types re-exported for S3 storage consumers.
|
|
29
|
+
*/
|
|
25
30
|
export type {
|
|
26
31
|
StorageBody,
|
|
27
32
|
StorageMetadata,
|
|
@@ -49,10 +54,19 @@ const S3StorageConfigSchema = z.object({
|
|
|
49
54
|
KEY_PREFIX: z.string().optional(),
|
|
50
55
|
});
|
|
51
56
|
|
|
57
|
+
/**
|
|
58
|
+
* S3 storage provider config loaded from `STORAGE_S3_*` env vars.
|
|
59
|
+
*/
|
|
52
60
|
export type S3StorageConfig = z.infer<typeof S3StorageConfigSchema>;
|
|
53
61
|
|
|
62
|
+
/**
|
|
63
|
+
* Minimal S3-compatible client shape required by this provider.
|
|
64
|
+
*/
|
|
54
65
|
export type S3StorageClient = Pick<S3Client, "send">;
|
|
55
66
|
|
|
67
|
+
/**
|
|
68
|
+
* Options for creating an S3-compatible storage port directly.
|
|
69
|
+
*/
|
|
56
70
|
export interface S3StorageOptions {
|
|
57
71
|
/**
|
|
58
72
|
* S3 bucket name.
|
|
@@ -116,6 +130,33 @@ export interface S3StorageOptions {
|
|
|
116
130
|
instrumentation?: ProviderInstrumentationTarget;
|
|
117
131
|
}
|
|
118
132
|
|
|
133
|
+
/**
|
|
134
|
+
* Options for creating an S3-compatible direct upload signer.
|
|
135
|
+
*/
|
|
136
|
+
export interface S3UploadSignerOptions extends S3StorageOptions {
|
|
137
|
+
/**
|
|
138
|
+
* Number of seconds before generated direct upload URLs expire.
|
|
139
|
+
*
|
|
140
|
+
* @default 900
|
|
141
|
+
*/
|
|
142
|
+
expiresInSeconds?: number;
|
|
143
|
+
/**
|
|
144
|
+
* Clock used for deterministic tests.
|
|
145
|
+
*/
|
|
146
|
+
now?: () => Date;
|
|
147
|
+
/**
|
|
148
|
+
* Test hook for replacing AWS SDK signing.
|
|
149
|
+
*/
|
|
150
|
+
signUrl?: (args: {
|
|
151
|
+
client: S3StorageClient;
|
|
152
|
+
command: PutObjectCommand;
|
|
153
|
+
expiresInSeconds: number;
|
|
154
|
+
}) => Promise<string> | string;
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
/**
|
|
158
|
+
* Options for creating an env-backed S3-compatible storage provider.
|
|
159
|
+
*/
|
|
119
160
|
export interface S3StorageProviderOptions
|
|
120
161
|
extends Omit<S3StorageOptions, "bucket" | "client" | "instrumentation"> {
|
|
121
162
|
/**
|
|
@@ -430,6 +471,15 @@ function metadataForPut(
|
|
|
430
471
|
};
|
|
431
472
|
}
|
|
432
473
|
|
|
474
|
+
function metadataHeaders(metadata: StorageMetadata): Record<string, string> {
|
|
475
|
+
return Object.fromEntries(
|
|
476
|
+
Object.entries(metadata).map(([key, value]) => [
|
|
477
|
+
`x-amz-meta-${key.toLowerCase()}`,
|
|
478
|
+
value,
|
|
479
|
+
]),
|
|
480
|
+
);
|
|
481
|
+
}
|
|
482
|
+
|
|
433
483
|
function objectFromHead(
|
|
434
484
|
key: string,
|
|
435
485
|
output: {
|
|
@@ -491,6 +541,12 @@ function createDefaultClient(options: S3StorageOptions): S3StorageClient {
|
|
|
491
541
|
});
|
|
492
542
|
}
|
|
493
543
|
|
|
544
|
+
/**
|
|
545
|
+
* Create a storage port backed by S3 or an S3-compatible object store.
|
|
546
|
+
*
|
|
547
|
+
* Supports AWS S3, Cloudflare R2, MinIO, Spaces, and similar stores by passing
|
|
548
|
+
* `endpoint`, `forcePathStyle`, credentials, and optional `keyPrefix`.
|
|
549
|
+
*/
|
|
494
550
|
export function createS3Storage(options: S3StorageOptions): StoragePort {
|
|
495
551
|
const client = options.client ?? createDefaultClient(options);
|
|
496
552
|
const keyPrefix = normalizeKeyPrefix(options.keyPrefix);
|
|
@@ -800,8 +856,118 @@ export function createS3Storage(options: S3StorageOptions): StoragePort {
|
|
|
800
856
|
};
|
|
801
857
|
}
|
|
802
858
|
|
|
859
|
+
/**
|
|
860
|
+
* Create an S3-compatible direct upload signer.
|
|
861
|
+
*
|
|
862
|
+
* The signer creates presigned PUT URLs for AWS S3, Cloudflare R2, MinIO,
|
|
863
|
+
* Spaces, and similar object stores. Use it with `createUploadRouter(...)`
|
|
864
|
+
* from `@beignet/core/uploads`.
|
|
865
|
+
*/
|
|
866
|
+
export function createS3UploadSigner(
|
|
867
|
+
options: S3UploadSignerOptions,
|
|
868
|
+
): UploadSignerPort {
|
|
869
|
+
const client = options.client ?? createDefaultClient(options);
|
|
870
|
+
const keyPrefix = normalizeKeyPrefix(options.keyPrefix);
|
|
871
|
+
const expiresInSeconds = options.expiresInSeconds ?? 900;
|
|
872
|
+
const now = options.now ?? (() => new Date());
|
|
873
|
+
const instrumentation = createProviderInstrumentation(
|
|
874
|
+
options.instrumentation,
|
|
875
|
+
{
|
|
876
|
+
providerName: "storage-s3",
|
|
877
|
+
watcher: "uploads",
|
|
878
|
+
},
|
|
879
|
+
);
|
|
880
|
+
|
|
881
|
+
return {
|
|
882
|
+
async sign(args) {
|
|
883
|
+
const startedAt = Date.now();
|
|
884
|
+
const s3Key = objectKey(keyPrefix, args.key);
|
|
885
|
+
const metadata = metadataForPut(
|
|
886
|
+
args.storage.metadata,
|
|
887
|
+
args.storage.visibility,
|
|
888
|
+
);
|
|
889
|
+
const command = new PutObjectCommand({
|
|
890
|
+
Bucket: options.bucket,
|
|
891
|
+
Key: s3Key,
|
|
892
|
+
ContentType: args.file.contentType,
|
|
893
|
+
...(args.storage.cacheControl !== undefined
|
|
894
|
+
? { CacheControl: args.storage.cacheControl }
|
|
895
|
+
: {}),
|
|
896
|
+
Metadata: metadata,
|
|
897
|
+
});
|
|
898
|
+
|
|
899
|
+
try {
|
|
900
|
+
const url = await (options.signUrl
|
|
901
|
+
? options.signUrl({ client, command, expiresInSeconds })
|
|
902
|
+
: getSignedUrl(client as never, command, {
|
|
903
|
+
expiresIn: expiresInSeconds,
|
|
904
|
+
}));
|
|
905
|
+
const expiresAt = new Date(
|
|
906
|
+
now().getTime() + expiresInSeconds * 1000,
|
|
907
|
+
).toISOString();
|
|
908
|
+
|
|
909
|
+
instrumentation.custom({
|
|
910
|
+
name: "upload.sign.completed",
|
|
911
|
+
label: "Upload signed",
|
|
912
|
+
summary: args.uploadName,
|
|
913
|
+
details: {
|
|
914
|
+
provider: "s3",
|
|
915
|
+
uploadName: args.uploadName,
|
|
916
|
+
uploadId: args.uploadId,
|
|
917
|
+
key: args.key,
|
|
918
|
+
s3Key,
|
|
919
|
+
bucket: options.bucket,
|
|
920
|
+
contentType: args.file.contentType,
|
|
921
|
+
expiresInSeconds,
|
|
922
|
+
durationMs: Date.now() - startedAt,
|
|
923
|
+
},
|
|
924
|
+
});
|
|
925
|
+
|
|
926
|
+
return {
|
|
927
|
+
method: "PUT",
|
|
928
|
+
url,
|
|
929
|
+
headers: {
|
|
930
|
+
"content-type": args.file.contentType,
|
|
931
|
+
...(args.storage.cacheControl !== undefined
|
|
932
|
+
? { "cache-control": args.storage.cacheControl }
|
|
933
|
+
: {}),
|
|
934
|
+
...metadataHeaders(metadata),
|
|
935
|
+
},
|
|
936
|
+
expiresAt,
|
|
937
|
+
};
|
|
938
|
+
} catch (error) {
|
|
939
|
+
instrumentation.custom({
|
|
940
|
+
name: "upload.sign.failed",
|
|
941
|
+
label: "Upload sign failed",
|
|
942
|
+
summary: args.uploadName,
|
|
943
|
+
details: {
|
|
944
|
+
provider: "s3",
|
|
945
|
+
uploadName: args.uploadName,
|
|
946
|
+
uploadId: args.uploadId,
|
|
947
|
+
key: args.key,
|
|
948
|
+
s3Key,
|
|
949
|
+
bucket: options.bucket,
|
|
950
|
+
durationMs: Date.now() - startedAt,
|
|
951
|
+
error: errorMessage(error),
|
|
952
|
+
},
|
|
953
|
+
});
|
|
954
|
+
throw error;
|
|
955
|
+
}
|
|
956
|
+
},
|
|
957
|
+
};
|
|
958
|
+
}
|
|
959
|
+
|
|
960
|
+
/**
|
|
961
|
+
* Ports contributed by the S3 storage provider.
|
|
962
|
+
*/
|
|
803
963
|
export interface S3StorageProviderPorts {
|
|
964
|
+
/**
|
|
965
|
+
* Beignet storage port backed by S3-compatible storage.
|
|
966
|
+
*/
|
|
804
967
|
storage: StoragePort;
|
|
968
|
+
/**
|
|
969
|
+
* Raw client and key helpers for escape-hatch integrations.
|
|
970
|
+
*/
|
|
805
971
|
s3Storage: {
|
|
806
972
|
client: S3StorageClient;
|
|
807
973
|
bucket: string;
|
|
@@ -811,6 +977,12 @@ export interface S3StorageProviderPorts {
|
|
|
811
977
|
};
|
|
812
978
|
}
|
|
813
979
|
|
|
980
|
+
/**
|
|
981
|
+
* Create an env-backed S3-compatible storage provider.
|
|
982
|
+
*
|
|
983
|
+
* Reads `STORAGE_S3_*` env vars, contributes `ports.storage`, and exposes
|
|
984
|
+
* `ports.s3Storage` for raw client access and key-prefix helpers.
|
|
985
|
+
*/
|
|
814
986
|
export function createS3StorageProvider(
|
|
815
987
|
options: S3StorageProviderOptions = {},
|
|
816
988
|
) {
|
|
@@ -909,4 +1081,7 @@ export function createS3StorageProvider(
|
|
|
909
1081
|
});
|
|
910
1082
|
}
|
|
911
1083
|
|
|
1084
|
+
/**
|
|
1085
|
+
* Default env-backed S3-compatible storage provider.
|
|
1086
|
+
*/
|
|
912
1087
|
export const s3StorageProvider = createS3StorageProvider();
|