@hemia/aws-sdk
v0.0.3
Published
aws-sdk
Readme
@hemia/aws-sdk
SDK para facilitar la integración con servicios de AWS, empezando por S3.
Este paquete proporciona una interfaz sencilla y extensible para interactuar con Amazon S3 desde aplicaciones Node.js escritas en TypeScript. Su objetivo es centralizar la lógica de integración con AWS dentro del ecosistema Hemia, permitiendo en el futuro incorporar más servicios de AWS (como SES, SNS, DynamoDB, entre otros).
Características principales
- Subida de archivos a S3 (stream o buffer)
- Obtención de URL pública o firmada
- Eliminación de archivos
- Soporte para buckets privados y públicos
- Tipado completo en TypeScript
- Listo para extenderse a más servicios de AWS
Instalación
npm install @hemia/aws-sdkUso básico
Inicialización del cliente
import { createS3Client } from '@hemia/aws-sdk';
const s3 = createS3Client({
region: 'us-east-1',
credentials: {
accessKeyId: process.env.AWS_ACCESS_KEY_ID!,
secretAccessKey: process.env.AWS_SECRET_ACCESS_KEY!,
},
bucket: 'hemia-bucket-principal',
});Subir un archivo
const result = await s3.uploadFile({
key: 'uploads/images/profile.jpg',
filePath: './local/path/to/file.jpg',
contentType: 'image/jpeg',
});Obtener URL pública o firmada
const url = s3.getFileUrl('uploads/images/profile.jpg');
// o firmada:
const signedUrl = await s3.getSignedUrl('uploads/images/profile.jpg', { expiresIn: 3600 });Eliminar archivo
await s3.deleteFile('uploads/images/profile.jpg');Configuración avanzada
El cliente permite configurar opciones como:
- Bucket alternativo por operación
- ACL personalizada
- Configuración de caché
Roadmap
Este SDK se expandirá para soportar:
- [ ] Enviar correos con SES
- [ ] Publicar mensajes con SNS
- [ ] Guardar/leer datos en DynamoDB
- [ ] Subida directa desde frontend (firma temporal)
- [ ] Middleware de validación para archivos
Contribución
Las contribuciones son bienvenidas. Abre un issue o pull request para sugerir mejoras o reportar errores.
Licencia
MIT
