import { S3_KEY, S3_REGION, S3_SECRET, S3_ENDPOINT_URL, S3_BUCKET } from '$env/static/private'; | |
import * as AWS from '@aws-sdk/client-s3'; | |
const s3client = new AWS.S3({ | |
endpoint: S3_ENDPOINT_URL, | |
region: S3_REGION, | |
credentials: { accessKeyId: S3_KEY, secretAccessKey: S3_SECRET } | |
}); | |
await s3client | |
.send( | |
new AWS.PutBucketCorsCommand({ | |
Bucket: S3_BUCKET, | |
CORSConfiguration: { | |
CORSRules: [ | |
{ | |
AllowedMethods: ['PUT'], | |
// todo: change to production domain | |
AllowedOrigins: ['*'], | |
AllowedHeaders: ['*'], | |
ID: 'CORSRule1' | |
} | |
] | |
} | |
}) | |
) | |
.catch((err) => console.error('S3 CORS error: ', err)); | |
export function secureDownloadLink(url: string) { | |
if (['127.0.0.1', 'localhost'].includes(new URL(url).hostname)) { | |
return url; | |
} | |
return url.replace('http:', 'https:'); | |
} | |
export { s3client }; | |