1.3.2 • Published 9 years ago

librarian-mysql-meta v1.3.2

Weekly downloads
3
License
ISC
Repository
github
Last release
9 years ago

Librarian MySQL Meta

Installation

$ npm install librarian-mysql-meta

Usage

var express = require( 'express' )
var librarian = require( 'librarian' )
var MysqlMeta = require( 'librarian-mysql-meta' )
var HashIds = require( 'hashids' )
var meta = new MysqlMeta({

  // Connection option 1, pass details in a hash
  host: '192.168.0.44', // optional, defaults to 'localhost'
  port: 3306, // optional, defaults to 3306
  database: 'awesome_project', // optional, defaults to 'librarian'
  user: 'archive_reader', // optional, defaults to 'librarian'
  password: process.env.LIBRARIAN_DB_ACCESS_PASSWORD, // REQUIRED

  // Connection option 2, pass a connectionString
  // If you use this method, all information in option 1 will be ignored
  connectionString: 'mysql://user:password@host/db',

  table: 'librarian_uploads', // optional, defaults to 'files'
  secret: 'whisper whisper' // optional, defaults to 'I AM PUNCHING YOUR SALAD',

  // You can provide a custom HashIds object if your needs are more specific
  // Be aware that this will cause the secret option to be ignored
  hasher: new HashIds( 'the dog is over there', 7, '0123456789abcdef' )
})

var app = express()
app.use( '/files', librarian({
    metadataEngine: meta
}) )

app.listen( 8888, function(){
    console.log( 'app listening' )
})

Note

librarian-mysql-meta will not create the database schema required for this module to function. Please provide an existing table with the following or compatible schema.

FieldTypeNotes
idINTshould be AUTO_INCREMENT and PRIMARY KEY
fileNameVARCHAR( 128 )
fileSizeINTINT will store up to ~2gb, much larger sizes than librarian is designed to handle.
mimeTypeVARCHAR(64)RFC 6838 recommends a max mimeType length of 64 chars. Most common image formats are less than 10.

Here is an example SQL statement to create a compatable schema:

CREATE TABLE files (
  id INT AUTO_INCREMENT PRIMARY KEY,
  fileName VARCHAR(128),
  mimeType VARCHAR(64),
  fileSize INT
);

Note

Although this module relies on HashIds to give a pseudo-random image id, this is not intended for security, this is only used because /files/adffDc is better looking than /files/2.

1.3.2

9 years ago

1.3.1

9 years ago

1.3.0

9 years ago

1.2.1

9 years ago

1.2.0

9 years ago

1.1.1

9 years ago

1.1.0

9 years ago

1.0.0

9 years ago