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