RETIRED, An implementation of fs-blob-store for OpenStack's afs-based mirrors.
Go to file
Michael Krotscheck d72c31bb04
1.0.1
2016-04-08 13:33:56 -07:00
lib Project rename, plus new approach 2016-04-08 07:19:25 -07:00
spec Added edge case where callback does not receive parameters 2016-04-08 13:33:05 -07:00
.editorconfig Initial commit 2016-04-05 15:41:47 -07:00
.eslintignore Initial commit 2016-04-05 15:41:47 -07:00
.eslintrc Initial commit 2016-04-05 15:41:47 -07:00
.gitignore Added unit tests for the blobstore rewrites 2016-04-08 10:36:24 -07:00
.gitreview Updated name to afs-blob-store 2016-04-08 12:33:13 -07:00
.istanbul.yml Initial commit 2016-04-05 15:41:47 -07:00
.yo-rc.json Initial commit 2016-04-05 15:41:47 -07:00
LICENSE Initial commit 2016-04-05 15:41:47 -07:00
README.md Updated name to afs-blob-store 2016-04-08 12:33:13 -07:00
index.js Added edge case where callback does not receive parameters 2016-04-08 13:33:05 -07:00
package.json 1.0.1 2016-04-08 13:33:56 -07:00

README.md

afs-blob-store

This project provides a renaming shim on top of fs-blob-store, to permit the storing of large folders on AFS.

AFS has a practical folder size limit of ~64K entries. In order to accomodate folders with more files than this (such as the npm registry), we store them in subfolders, sorted by the first letter of the package name. For example: /foo becomes /f/foo, /bar becomes /b/bar, /q becomes /q/q. Only files that begin with alphanumeric characters are sorted.

Accessing these files via afs-blob-store is transparent. Accessing them via other methods can be accomplished via rewrite rules (for instance, apache's mod_rewrite).

This module is in use by OpenStack's Infrastructure team, to run the npm portion of our unified mirrors.

QuickStart

#!/bin/bash

# Install the registry and the hook module.
npm install -g registry-static afs-blob-store

# Run the registry script
registry-static -d my.registry.com -o /var/www/registry \
	--blobstore afs-blob-store

Some useful development commands

  • npm test - Run all the tests, with coverage.
  • npm run lint - Perform a linting check.

Project Resources