loopback-component-storage-postgres
LoopBack storage postgres component provides Node.js and REST APIs to manage binary contents using Postgres Large Object
Installation
Install the storage component as usual for a Node package:
npm install --save loopback-component-storage-postgres
Using it
Create a table to store file descriptions
CREATE TABLE "my-tabe-to-store-files" ( id SERIAL PRIMARY KEY, container TEXT NOT NULL, filename TEXT NOT NULL, mimetype TEXT, objectid INTEGER UNIQUE NOT NULL );
Edit you datasources.json and add the following part
"pg_file": "name": "pg_file" "connector": "loopback-component-storage-postgres" "host": "localhost" "port": 5432 "database": "test" "table": "my-table-to-store-files" "username": "test-user" "password": "test-password"
And the you can use it as a datasource of your model.
API
Description | Container model method | REST URI |
---|---|---|
List all containers | getContainers(callback) | GET /api/ |
Get information about specified container | getContainer(container, callback) | GET /api//:container |
Create a new container | createContainer(options, callback) | PORT /api/ |
Delete specified container | destroyContainer(options, callback) | DELETE /api//:container |
List all files within specified container | getFiles(container, callback) | GET /api//:container/files |
Get information for specified file within specified container | getFile(container, file, callback) | GET /api//:container/files/:file |
Delete a file within a given container by name | removeFile(container, file, callback) | DELETE /api//:container/files/:file |
Upload one or more files into the specified container | upload(container, req, res, callback) | POST /api//:container/upload |
Download a file within specified container | download(container, file, res, callback) | GET /api//:container/download/:file |