Skip to content

Commit f104c43

Browse files
committed
dev-demo: add ability to switch between S3/local storage adapter using env variable
1 parent 3e5d1a2 commit f104c43

File tree

3 files changed

+28
-23
lines changed

3 files changed

+28
-23
lines changed

dev-demo/.env.local

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,4 +11,6 @@ CH_MIGRATIONS_PASSWORD=demo
1111
AWS_REGION=eu-central-1
1212
AWS_BUCKET_NAME=tmpbucket-adminforth
1313
AWS_ACCESS_KEY_ID=your_access_key_id
14-
AWS_SECRET_ACCESS_KEY=your_secret_access_key
14+
AWS_SECRET_ACCESS_KEY=your_secret_access_key
15+
16+
USE_S3=false

dev-demo/resources/carsResourseTemplate.ts

Lines changed: 19 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -177,17 +177,16 @@ export default function carsResourseTemplate(resourceId: string, dataSource: str
177177
178178
*********************************************************************************/
179179
new UploadPlugin({
180-
storageAdapter: new AdminForthStorageAdapterLocalFilesystem({
180+
storageAdapter: process.env.USE_S3 !== 'true' ? new AdminForthStorageAdapterLocalFilesystem({
181181
fileSystemFolder: "./db/uploads",
182182
mode: "public", // or "private"
183183
signingSecret: '1241245',
184+
}) : new AdminForthAdapterS3Storage({
185+
bucket: process.env.AWS_BUCKET_NAME as string,
186+
region: process.env.AWS_REGION as string,
187+
accessKeyId: process.env.AWS_ACCESS_KEY_ID as string,
188+
secretAccessKey: process.env.AWS_SECRET_ACCESS_KEY as string,
184189
}),
185-
// storageAdapter: new AdminForthAdapterS3Storage({
186-
// bucket: process.env.AWS_BUCKET_NAME as string,
187-
// region: process.env.AWS_REGION as string,
188-
// accessKeyId: process.env.AWS_ACCESS_KEY_ID as string,
189-
// secretAccessKey: process.env.AWS_SECRET_ACCESS_KEY as string,
190-
// }),
191190
pathColumnName: 'photos',
192191
allowedFileExtensions: ['jpg', 'jpeg', 'png', 'gif', 'webm', 'webp'],
193192
maxFileSize: 1024 * 1024 * 20, // 20 MB
@@ -198,17 +197,16 @@ export default function carsResourseTemplate(resourceId: string, dataSource: str
198197
},
199198
}),
200199
new UploadPlugin({
201-
storageAdapter: new AdminForthStorageAdapterLocalFilesystem({
200+
storageAdapter: process.env.USE_S3 !== 'true' ? new AdminForthStorageAdapterLocalFilesystem({
202201
fileSystemFolder: "./db/uploads_promo",
203202
mode: "public", // or "private"
204203
signingSecret: '1241245',
204+
}) : new AdminForthAdapterS3Storage({
205+
bucket: process.env.AWS_BUCKET_NAME as string,
206+
region: process.env.AWS_REGION as string,
207+
accessKeyId: process.env.AWS_ACCESS_KEY_ID as string,
208+
secretAccessKey: process.env.AWS_SECRET_ACCESS_KEY as string,
205209
}),
206-
// storageAdapter: new AdminForthAdapterS3Storage({
207-
// bucket: process.env.AWS_BUCKET_NAME as string,
208-
// region: process.env.AWS_REGION as string,
209-
// accessKeyId: process.env.AWS_ACCESS_KEY_ID as string,
210-
// secretAccessKey: process.env.AWS_SECRET_ACCESS_KEY as string,
211-
// }),
212210
pathColumnName: 'promo_picture',
213211
allowedFileExtensions: ['jpg', 'jpeg', 'png', 'gif', 'webm', 'webp'],
214212
maxFileSize: 1024 * 1024 * 20, // 20 MB
@@ -275,17 +273,17 @@ export default function carsResourseTemplate(resourceId: string, dataSource: str
275273
...(process.env.OPENAI_API_KEY ?
276274
[
277275
new UploadPlugin({
278-
storageAdapter: new AdminForthStorageAdapterLocalFilesystem({
276+
storageAdapter: process.env.USE_S3 !== 'true' ? new AdminForthStorageAdapterLocalFilesystem({
279277
fileSystemFolder: "./db/uploads_promo_generated",
280278
mode: "public", // or "private"
281279
signingSecret: '1241245',
280+
}) : new AdminForthAdapterS3Storage({
281+
bucket: process.env.AWS_BUCKET_NAME as string,
282+
region: process.env.AWS_REGION as string,
283+
accessKeyId: process.env.AWS_ACCESS_KEY_ID as string,
284+
secretAccessKey: process.env.AWS_SECRET_ACCESS_KEY as string,
282285
}),
283-
// storageAdapter: new AdminForthAdapterS3Storage({
284-
// bucket: process.env.AWS_BUCKET_NAME as string,
285-
// region: process.env.AWS_REGION as string,
286-
// accessKeyId: process.env.AWS_ACCESS_KEY_ID as string,
287-
// secretAccessKey: process.env.AWS_SECRET_ACCESS_KEY as string,
288-
// }),
286+
289287
pathColumnName: 'generated_promo_picture',
290288
allowedFileExtensions: ['jpg', 'jpeg', 'png', 'gif', 'webm', 'webp'],
291289
maxFileSize: 1024 * 1024 * 20, // 20 MB

dev-demo/resources/cars_description_image.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,10 +42,15 @@ export default {
4242
plugins: [
4343
new UploadPlugin({
4444
pathColumnName: "image_path",
45-
storageAdapter: new AdminForthStorageAdapterLocalFilesystem({
45+
storageAdapter:process.env.USE_S3 !== 'true' ? new AdminForthStorageAdapterLocalFilesystem({
4646
fileSystemFolder: "./db/uploads_promo_generated",
4747
mode: "public", // or "private"
4848
signingSecret: '1241245',
49+
}) : new AdminForthAdapterS3Storage({
50+
bucket: process.env.AWS_BUCKET_NAME as string,
51+
region: process.env.AWS_REGION as string,
52+
accessKeyId: process.env.AWS_ACCESS_KEY_ID as string,
53+
secretAccessKey: process.env.AWS_SECRET_ACCESS_KEY as string,
4954
}),
5055

5156
// to test s3:

0 commit comments

Comments
 (0)