Storage API

Mission Statement

Storage API is a low-level framework for managed file storage and serving. Module and all the core functions will remain agnostic of other modules in order to provide this low-level functionality. Submodules are welcome to allow Storage API to interact with other contributed modules, but there shall never be a dependencies[] statement in the storage.info file unless it is necessary for the low-level function of this module.

It has the following features:

  • Pluggable architecture - it can be extended to work with any storage service.
  • Redundancy - it can be configured to store your files in multiple services and instantaneously change which one is serving. This means your site will not be brought down by a service having problems.
  • Access control API - can be used for e-commerce.
  • Deduplication - when files that are identical are stored in the same container, only one instance will be created. This saves bandwidth and storage.
  • File and image field integration - enable the "core bridge" sub-module.
  • Audit module - compares a manifest of files with what is recorded in the database to ensure that the record is accurate.

There are some screencasts demonstrating various features of the module.

Services

  • Filesystem - files are stored in a local directory and served via any HTTP or FTP service running on the server.
  • Database - really just a proof of concept. All files are stored in the database and served via Drupal.
  • FTP - files are uploaded to a directory via FTP. A URL prefix can be defined for serving.
  • Amazon S3 / CloudFront - files are uploaded to an S3 'bucket'. Serving is handled by S3 or CloudFront. Also supports media streaming and time-limited cryptographically-signed URLs.
  • Rackspace Cloud Files - served using Limelight Network's CDN.

New Support for Storage API

Storage API now has new maintainers for the module. We are actively working to clear the very large backlog of requests in the issue queue so that we can start to move forward with future development of the module.

Related Modules

Code Browsing

Want to take a look a the code of this module? We replicate the Drupal.org Git repository to Bitbucket which has a little nicer tools for browsing code. Pull requests are not honored on Bitbucket, please do those here.

Also located on Github as well.

Need Help?

The first stop for problems is our documentation. Recurring problems are put into our documentation to assit users. After that, please refer to and search our issue queue. Exhausting those avenues, please feel free to submit and issue in the queue.

Project Information

Downloads