A lean RESTful Amazon S3-like asset server that supports subdomain buckets, content hashing and versioning, streaming files directly to the the local filesystem.
Asset-Server was built as an image host for a project that needed a S3-like, quick and reliable public file host that could be rolled into a package to be hosted onsite in some use cases, and being replaced by Amazon S3 in others. Obviously you can store any sort of files in it. AS is meant to act as a public-facing server that you can store both static (like website, marketing, e-mail and other assets that might get updated but need the same URL) and user-generated/uploaded content in. Runs with the help of Node.JS, Restify and MongoDB.
Tested with OSX 10.9.2 and Debian GNU/Linux.
- Etag support
Clone source to download.
AssetServerEnv. If you're running a local instance,
localis a good bet.
domain, line 8).
*.local.asset-server.comalways points to 127.0.0.1 from DNS, so you can use that for local testing.
bucketkey, line 14). This is used to create new buckets to upload to.
storagelocation, line 19. This is the directory files are stored in. Make sure the directory exists and is writable by the user running the server.
Run app.js to start the server. If you want to set the environment name on the fly, you can run
AssetServerEnv=yourenv node app.js.
To create a bucket, send a POST request to /bucket with the following headers:
"name": "Your Bucket's Name","subdomain": "subdomain","bucketkey": "yourbucketkey"
The response body should contain JSON with your API key and secret that you can use to access the bucket.
Node.js client module to interact with a bucket. Includes test command-line scripts.
Alpha desktop client to upload files to an asset-server instance. Built on top of node-webkit.
Contributions are welcome! Please note that the point is to keep the server lean and light, so besides the features listed above, there should be a very good reason to have the server do something else.
Applied Research & Development