Project Name | Stars | Downloads | Repos Using This | Packages Using This | Most Recent Commit | Total Releases | Latest Release | Open Issues | License | Language |
---|---|---|---|---|---|---|---|---|---|---|
Awesome Aws | 11,531 | 3 days ago | 1 | December 21, 2015 | 65 | other | Python | |||
A curated list of awesome Amazon Web Services (AWS) libraries, open source repos, guides, blogs, and other resources. Featuring the Fiery Meter of AWSome. | ||||||||||
S3fs Fuse | 7,215 | 2 days ago | 4 | March 09, 2022 | 219 | gpl-2.0 | C++ | |||
FUSE-based file system backed by Amazon S3 | ||||||||||
Moto | 6,863 | 20 hours ago | 55 | apache-2.0 | Python | |||||
A library that allows you to easily mock out tests based on AWS infrastructure. | ||||||||||
Replibyte | 3,512 | 3 months ago | 82 | gpl-3.0 | Rust | |||||
Seed your development database with real data ⚡️ | ||||||||||
Wal E | 3,327 | 14 | a year ago | 33 | February 04, 2020 | 91 | bsd-3-clause | Python | ||
Continuous Archiving for Postgres | ||||||||||
0x4447_product_s3_email | 2,905 | a year ago | 2 | mit | ||||||
📫 A serverless email server on AWS using S3 and SES | ||||||||||
Mountpoint S3 | 2,588 | a day ago | 32 | apache-2.0 | Rust | |||||
A simple, high-throughput file client for mounting an Amazon S3 bucket as a local file system. | ||||||||||
Wal G | 2,571 | a day ago | 62 | March 16, 2022 | 238 | other | Go | |||
Archival and Restoration for databases in the Cloud | ||||||||||
Mc | 2,468 | 15 | 15 | 2 days ago | 50 | April 22, 2021 | 39 | agpl-3.0 | Go | |
Simple | Fast tool to manage MinIO clusters :cloud: | ||||||||||
Aws Sdk Js V3 | 2,404 | 427 | a day ago | 156 | September 27, 2022 | 365 | apache-2.0 | TypeScript | ||
Modularized AWS SDK for JavaScript. |
Mountpoint for Amazon S3 is a simple, high-throughput file client for mounting an Amazon S3 bucket as a local file system. With Mountpoint for Amazon S3, your applications can access objects stored in Amazon S3 through file operations like open
and read
. Mountpoint for Amazon S3 automatically translates these operations into S3 object API calls, giving your applications access to the elastic storage and throughput of Amazon S3 through a file interface.
File system features: Mountpoint for Amazon S3 is optimized for read-heavy workloads that need high throughput. It does not implement the full POSIX specification for file systems, and we don't intend to implement features that cannot be efficiently executed against S3's object APIs. See SEMANTICS.md for a detailed description of Mountpoint for Amazon S3's behavior and POSIX support. For workloads that need POSIX support, we recommend AWS fully managed file system services like Amazon FSx for Lustre and its support for linking S3 buckets.
Compatibility: Mountpoint for Amazon S3 is designed for high-performance access to the Amazon S3 service. While it may be functional against other storage services that use S3-like APIs, we aren't able to provide support for those use cases, and they may inadvertently break when we make changes to better support Amazon S3. We welcome contributions of minor compatibility fixes or performance improvements for these services if the changes can be tested against Amazon S3.
Mountpoint for Amazon S3 is currently an alpha release and should not be used in production. We're tracking its production readiness and future features on the Mountpoint for Amazon S3 public roadmap. We're especially interested in early feedback on features, performance, and compatibility. Please send feedback by opening a GitHub issue.
There are some notable restrictions in this first release:
The alpha release of Mountpoint for Amazon S3 is only available by building from source, and only supports Linux.
First, install the necessary dependencies. For RPM-based distributions (Amazon Linux 2 and 2023, Fedora, CentOS, etc):
sudo yum install fuse fuse-devel cmake3 clang-devel git
or for apt-based distributions (Debian, Ubuntu, etc):
sudo apt install fuse libfuse-dev cmake libclang-dev git
Secondly, install the Rust compiler via rustup:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source "$HOME/.cargo/env"
Now clone this repository and its submodules:
git clone --recurse-submodules https://github.com/awslabs/mountpoint-s3.git
Finally, compile the client:
cd mountpoint-s3
cargo build --release
The final binary will be at target/release/mount-s3
.
The following instructions assume you have the binary on your path.
Add it to a location on your path now, or prefix mount-s3
commands with the path to the binary.
To use the client, ensure you have access to valid AWS credentials. For example, you could create a new IAM user and add it to the ~/.aws/credentials
file, or configure an EC2 instance with an IAM role.
Then run the client, specifying the directory in which your S3 bucket should be mounted (here, ~/mnt
):
mkdir ~/mnt
mount-s3 my-s3-bucket-name ~/mnt
The client will run in the background by default, and the ~/mnt
directory now gives access to the objects in your S3 bucket.
First, build the docker image using the below command.
cd mountpoint-s3/docker
docker build -t mount-s3 .
Once the container build is successful, configure AWS credentials as environment variables.
You can set short-term or long-term credentials using variables, such as those in the AWS CLI environment variables documentation.
Run the following command to mount the S3 bucket and list some files.
Replace DOC-EXAMPLE-BUCKET
with the name of your bucket.
docker run -it \
--cap-add SYS_ADMIN \
--device /dev/fuse \
--env AWS_ACCESS_KEY_ID \
--env AWS_SECRET_ACCESS_KEY \
--env AWS_SESSION_TOKEN \
--env AWS_DEFAULT_REGION \
mount-s3 /bin/bash -c "./mount-s3 DOC-EXAMPLE-BUCKET /mnt; ls -l /mnt"
If you're using Arch Linux, you can use the unofficial AUR package. Using Yay:
yay -S mountpoint-s3-git
For the alpha release, additional configuration is required to use Mountpoint for Amazon S3 in some circumstances:
AWS_PROFILE
environment variable to the profile you want to use. Profile selection will be supported via the --profile
command-line argument in the future (https://github.com/awslabs/mountpoint-s3/issues/151).--throughput-target-gbps
command-line argument. Defaults to 10 Gbps if not configured. This configuration will be automated in the future (https://github.com/awslabs/mountpoint-s3/issues/3).--endpoint-url
command-line argument and the region name with the --region
argument. For example, for the AWS GovCloud (US-West) region, specify --endpoint-url https://s3.us-gov-west-1.amazonaws.com --region us-gov-west-1
. See the S3 endpoints documentation for more details. These regions will be supported via only the --region
command-line argument in the future (https://github.com/awslabs/mountpoint-s3/issues/4).--endpoint-url
command-line argument. See the S3 endpoints documentation for more details. These endpoints will be configurable in the future (https://github.com/awslabs/mountpoint-s3/issues/4).We welcome contributions to Mountpoint for Amazon S3! Please see CONTRIBUTING.md for more information on how to report bugs or submit pull requests, LOGGING.md for details on how to capture logging data for bug reports, and BENCHMARKING.md for performance regression testing.
If you discover a potential security issue in this project we ask that you notify AWS Security via our vulnerability reporting page. Please do not create a public GitHub issue.
This project has adopted the Amazon Open Source Code of Conduct. See CODE_OF_CONDUCT.md for more details.
This project is licensed under the Apache-2.0 License. It builds on a number of other awesome projects with open source licenses, primarily:
See deny.toml for a list of licenses used by our dependencies.