@rakun-kit/s3
v1.0.2
Published
S3 media storage adapter for Rakun.
Downloads
86
Readme
@rakun-kit/s3
S3 storage adapter for Rakun media.
Usage
Use createS3MediaServiceConfig in rakunBootstrap:
import { rakunBootstrap } from "@rakun-kit/core";
import { createS3MediaServiceConfig } from "@rakun-kit/s3";
rakunBootstrap({
// ...
media: createS3MediaServiceConfig({
region: process.env.AWS_REGION!,
publicBucket: process.env.RAKUN_PUBLIC_BUCKET!,
privateBucket: process.env.RAKUN_PRIVATE_BUCKET!,
baseUrl: "/api/rakun",
publicBaseUrl: process.env.RAKUN_PUBLIC_MEDIA_URL,
defaultAccess: "private",
}),
});For S3-compatible services, pass endpoint and optionally forcePathStyle:
media: createS3MediaServiceConfig({
region: "auto",
endpoint: process.env.S3_ENDPOINT!,
forcePathStyle: true,
publicBucket: "rakun-public",
privateBucket: "rakun-private",
});Options
type S3MediaServiceConfig = {
region: string;
endpoint?: string;
forcePathStyle?: boolean;
publicBucket: string;
privateBucket: string;
baseUrl?: string;
uploadUrl?: string;
publicBaseUrl?: string;
publicCacheControl?: string;
putExpiresInSeconds?: number;
getExpiresInSeconds?: number;
defaultAccess?: MediaAccess;
};Behavior:
- public media uses
publicBucket. - private media uses
privateBucket. - uploads use Rakun's
/media/uploadendpoint, prefixed bybaseUrlwhen provided. - pass
uploadUrlto override the upload endpoint completely. - private reads use presigned
GetObjectURLs. - public reads return
publicBaseUrl/keywhenpublicBaseUrlis configured.
Exports
S3AdaptercreateS3MediaServiceConfigS3MediaServiceConfig
Build
npm run build --workspace @rakun-kit/s3