@zerointermittency/s3 v1.0.0
Bienvenido
Este modulo es el encargado de proporcionar las funcionalidades para utilizar las características del servicio S3 de Amazon Web Services.
Instalación
yarn add @zerointermittency/s3
# npm i --save @zerointermittency/s3
Errores estandarizados
código | nivel | nombre | mensaje |
---|---|---|---|
100 | fatal | internal | Internal error |
101 | error | notFound | Not found |
102 | error | alreadyExist | Already exist |
Api
El modulo utiliza aws-sdk, para poder utilizar todas las funcionalidades de S3 que están descritas en su documentación.
Iniciar
Se instancia un objeto como se hace a continuación:
const ZIS3 = require('@zerointermittency/s3'),
s3 = new ZIS3(s3);
Argumentos:
- s3 (Object) required: es el objeto que recibe todas las opciones del constructor de S3 del sdk de amazon
- bucket (String): es el bucket que utiliza por defecto el modulo para realizar los crud
bucket es como amazon nombra el punto donde se almacenaran los archivos y carpetas
Retorna:
- (ZIS3): Retorna la instancia de la clase ZIS3.
Método _head
Este método permite saber si existe un elemento
s3._head(key, bucket)
.then(() => {})
.catch((error) => {});
Argumentos:
- key (String): representa la ruta de destino del archivo o su identificador dentro del bucket
- bucket (String): nombre que identifica el bucket, por defecto bucket en el constructor de ZIS3
Retorna:
- (Promise):
- then(): se ejecuta si el elemento existe
- catch(error [Object]): error estandarizado
CRUD
Todas las operaciones de creación, lectura, actualización y eliminación para los archivos que se manipularan en S3
Método create
Este método permite subir y crear un objeto en S3
s3.crud.create(opts)
.then((data) => {})
.catch((error) => {});
Argumentos:
- opts (Object) required:
- key (String) required: representa la ruta de destino del archivo a subir y su identificador dentro del bucket
- contentType (String) required: formato del archivo según estandar
- body (Buffer|ReadableStream|String) required: data del archivo
- acl (String): tipo de acceso para el archivo, por defecto public-read. Otras opciones son:
- private
- public-read
- public-read-write
- authenticated-read
- aws-exec-read
- bucket-owner-read
- bucket-owner-full-control
- bucket (String): nombre que identifica el bucket, por defecto bucket en el constructor de ZIS3
mas información sobre estas opciones en la documentación
Retorna:
- (Promise):
- then(data [Object]):
- location (String): enlace desde el cual se puede acceder al archivo
- key (String): representa la ruta de destino del archivo o su identificador dentro del bucket
- bucket (String): nombre que identifica el bucket
- catch(error [Object]): error estandarizado
- then(data [Object]):
Metodo read
s3.crud.read(key)
.then((data) => {})
.catch((error) => {});
Argumentos:
- key (String): representa la ruta de destino del archivo o su identificador dentro del bucket
Retorna:
- (Promise):
Metodo update
s3.crud.update(opts)
.then(() => {})
.catch((error) => {});
Argumentos:
- opts (Object) required:
- key (String) required: representa la ruta de destino del archivo a subir y su identificador dentro del bucket
- contentType (String): formato del archivo según estándar
- body (Buffer|ReadableStream|String) required: data del archivo
- acl (String): tipo de acceso para el archivo, por defecto public-read. Otras opciones son:
- private
- public-read
- public-read-write
- authenticated-read
- aws-exec-read
- bucket-owner-read
- bucket-owner-full-control
- bucket (String): nombre que identifica el bucket, por defecto bucket en el constructor de ZIS3
Retorna:
- (Promise):
- then(): se ejecuta cuando ha resultado la actualización correctamente
- catch(error [Object]): error estandarizado
Metodo delete
s3.crud.delete(key)
.then(() => {})
.catch((error) => {});
Argumentos:
- key (String): representa la ruta de destino del archivo o su identificador dentro del bucket
Retorna:
- (Promise):
- then(): se ejecuta cuando se realizo la eliminación correctamente
- catch(error [Object]): error estandarizado
Pruebas funcionales (Unit Testing)
Se llevaron a cabo las pruebas funcionales para validar el funcionamiento de sus métodos y opciones por defecto:
Importante: para realizar las pruebas se debe agregar el archivo las credenciales
/test/config.js
basándose en/test/config-sample.js
yarn test
Changelog
Todos los cambios importantes son escritos aquí. El Formato esta basado en Keep a Changelog
Unreleased
1.0.0 - 2018-01-08
Added
- Se agregan pruebas funcionales con el objetivo de tener probado todo el código, usando istanbul js para saber cuanto
- CRUD para manipulación de archivos
6 years ago