Buckets en AWS con SDK
En esta publicación describo lo necesario para programar con el SDK de AWS el manejo de "buckets" y carga de archivos, comenzando por los "require"s necesarios y los clientes que ejecutarán los comandos.
const {
CreateBucketCommand,
PutObjectCommand,
S3Client
} = require ('@aws-sdk/client-s3');
const {
RunInstancesCommand,
StopInstancesCommand,
AttachColumeCommand,
DetachVolumeCommand,
EC2Client
} = require('@aws-sdk/client-ec2');
const paramsClient = {...};
const clientS3 = new S3Client(paramsClient);
const client = new EC2Client(paramsClient);
Ahora procedo con la secuencia para crear un "bucket", detener instancia, desatar un volumen y atarlo a otra instancia.
const paramsBucket = {...}
const cmdBucket = new CreateBucketCommand(paramsBucket);
const dataBucket = clientS3.send(cmdBucket);
const paramsStopInstance = {...};
const cmdStopInstance = new StopInstancesCommand(paramsStopInstance);
const dataStopInstance = client.send(cmdStopInstance);
const paramsDetach = {...};
const cmdDetach = new DetachVolumeCommand(paramsDetach);
const dataDetach = client.send(cmdDetach);
const paramsAttach = {...};
const cmdAttach = new AttachVolumeCommand(paramsAttach);
const dataAttach = client.send(cmdAttach);
Lo siguiente es para subir archivos al "bucket".
const paramsUpload = {...};
const cmdUpload = new PutObjectCommand(paramsUpload);
const clientS3.send(cmdUpload);
Finalmente describo la estructura básica para los parámetros requeridos por cada comando.
const paramsClient = {
region: process.ev.AWS_REGION // string con el nombre de la región
};
const paramsBucket = {
Bucket: bucketName, // string con el nombre del "bucket"
ACL: acl // string con el tipo de nivel de acceso
}
const paramsStopInstance = {
InstanceIds: [ instanceId ] // lista de string con los id de las instancias
};
const paramsDetach = {
VolumeId: volumeId // string con el id del volumen
};
const paramsAttach = {
InstanceId: instanceId, // string con el id de la instancia
VolumeId: volumeId, // string con el id del volumen
Device: device // string con el nombre del dispositivo
};
const paramsUpload = {
Bucket: bucketName, // string con el nombre del "bucket"
ACL: acl, // string con el tipo de nivel de acceso
Body: bodyFile, // string base 64 con el contenido (bytes) del archivo
Key: fileName, // string con el nombre del archivo
ContentType: type // string con el tipo de archivo
};
Comentarios
Publicar un comentario