Yet Another S3-backed File System: yas3fs

YAS3FS (Yet Another S3-backed File System) is a Filesystem in Userspace (FUSE) interface to Amazon S3.

This is a personal project. No relation whatsoever exists between this project and my employer.

  • It allows to mount an S3 bucket (or a part of it, if you specify a path) as a local folder.
  • It works on Linux and Mac OS X.
  • For maximum speed all data read from S3 is cached in memory locally on the node.
  • It can be used on more than one node to create a “shared” file system (i.e. a yas3fs “cluster”).
  • SNS notifications are used to update other nodes in the cluster that something has changed on S3 and they need to invalidate their cache.
  • Notifications can be listened using HTTP or SQS endpoints.
  • With buffering enabled (the default) files can be accessed during the download from S3 (e.g. for streaming).
  • If the cache grows to its maximum size, the least accessed files are removed.
  • AWS credentials can be passed using AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY environmental variables.
  • In an EC2 instance a IAM role can be used to give access to S3/SNS/SQS resources.
  • It is written in Python (2.6) using boto and fusepy.

The Home Page of the project is: http://danilop.github.com/yas3fs

This is the repository on GitHub: https://github.com/danilop/yas3fs

 

 

Leave a Reply