pages s3
This commit is contained in:
parent
1a6d0dd6bf
commit
bb3ad20c24
45
lib/s3.ts
45
lib/s3.ts
@ -1,13 +1,27 @@
|
|||||||
import { S3Client, ListObjectsV2Command, GetObjectCommand, PutObjectCommand, DeleteObjectCommand } from '@aws-sdk/client-s3';
|
import { S3Client, ListObjectsV2Command, GetObjectCommand, PutObjectCommand, DeleteObjectCommand } from '@aws-sdk/client-s3';
|
||||||
import { getSignedUrl } from '@aws-sdk/s3-request-presigner';
|
import { getSignedUrl } from '@aws-sdk/s3-request-presigner';
|
||||||
|
|
||||||
// Simplified S3 configuration with consistent naming
|
/**
|
||||||
|
* S3/MinIO Configuration
|
||||||
|
*
|
||||||
|
* IMPORTANT: Set these environment variables in your .env file:
|
||||||
|
*
|
||||||
|
* MINIO_S3_UPLOAD_BUCKET_URL=https://your-minio-instance.com/
|
||||||
|
* MINIO_AWS_REGION=your-region
|
||||||
|
* MINIO_AWS_S3_UPLOAD_BUCKET_NAME=your-bucket-name
|
||||||
|
* MINIO_ACCESS_KEY=your-access-key
|
||||||
|
* MINIO_SECRET_KEY=your-secret-key
|
||||||
|
*
|
||||||
|
* Alternative credentials (fallback):
|
||||||
|
* AWS_ACCESS_KEY_ID=your-aws-access-key
|
||||||
|
* AWS_SECRET_ACCESS_KEY=your-aws-secret-key
|
||||||
|
*/
|
||||||
export const S3_CONFIG = {
|
export const S3_CONFIG = {
|
||||||
endpoint: process.env.S3_ENDPOINT || 'https://dome-api.slm-lab.net/',
|
endpoint: process.env.MINIO_S3_UPLOAD_BUCKET_URL,
|
||||||
region: process.env.S3_REGION || 'eu-east-1',
|
region: process.env.MINIO_AWS_REGION,
|
||||||
bucket: process.env.S3_BUCKET || 'pages',
|
bucket: process.env.MINIO_AWS_S3_UPLOAD_BUCKET_NAME,
|
||||||
accessKey: process.env.S3_ACCESS_KEY,
|
accessKey: process.env.MINIO_ACCESS_KEY || process.env.AWS_ACCESS_KEY_ID,
|
||||||
secretKey: process.env.S3_SECRET_KEY,
|
secretKey: process.env.MINIO_SECRET_KEY || process.env.AWS_SECRET_ACCESS_KEY,
|
||||||
}
|
}
|
||||||
|
|
||||||
// Initialize S3 client with standard configuration
|
// Initialize S3 client with standard configuration
|
||||||
@ -30,6 +44,25 @@ if (S3_CONFIG.accessKey && S3_CONFIG.secretKey) {
|
|||||||
// Create S3 client
|
// Create S3 client
|
||||||
export const s3Client = new S3Client(s3Config);
|
export const s3Client = new S3Client(s3Config);
|
||||||
|
|
||||||
|
// Check for required environment variables
|
||||||
|
if (!S3_CONFIG.endpoint || !S3_CONFIG.bucket) {
|
||||||
|
console.error('ERROR: Missing required S3 environment variables!');
|
||||||
|
console.error('Please make sure your .env file contains:');
|
||||||
|
console.error('- MINIO_S3_UPLOAD_BUCKET_URL');
|
||||||
|
console.error('- MINIO_AWS_S3_UPLOAD_BUCKET_NAME');
|
||||||
|
console.error('- MINIO_ACCESS_KEY or AWS_ACCESS_KEY_ID');
|
||||||
|
console.error('- MINIO_SECRET_KEY or AWS_SECRET_ACCESS_KEY');
|
||||||
|
}
|
||||||
|
|
||||||
|
// Log configuration for debugging (without exposing credentials)
|
||||||
|
console.log('S3 Configuration:', {
|
||||||
|
endpoint: S3_CONFIG.endpoint || 'MISSING!',
|
||||||
|
region: S3_CONFIG.region || 'MISSING!',
|
||||||
|
bucket: S3_CONFIG.bucket || 'MISSING!',
|
||||||
|
hasAccessKey: !!S3_CONFIG.accessKey || 'MISSING!',
|
||||||
|
hasSecretKey: !!S3_CONFIG.secretKey || 'MISSING!',
|
||||||
|
});
|
||||||
|
|
||||||
// Helper functions for S3 operations
|
// Helper functions for S3 operations
|
||||||
|
|
||||||
// List objects in a "folder" for a specific user
|
// List objects in a "folder" for a specific user
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user