1.0.0 • Published 6 years ago

@zerointermittency/s3 v1.0.0

Weekly downloads
20
License
MIT
Repository
github
Last release
6 years ago

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ódigonivelnombremensaje
100fatalinternalInternal error
101errornotFoundNot found
102erroralreadyExistAlready 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:

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
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):
    • then(data [Object]):
      • contentType (String): formato del archivo según estándar
      • body (Buffer): representa el archivo subido aS3
      • lastModified (Date): fecha ultima modificación
    • catch(error [Object]): error estandarizado
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