All Projects → kobayashi → S3monkey

kobayashi / S3monkey

A Python library that allows you to interact with Amazon S3 Buckets as if they are your local filesystem.

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to S3monkey

S3fs Fuse
FUSE-based file system backed by Amazon S3
Stars: ✭ 5,733 (+1336.84%)
Mutual labels:  s3, fuse
Go Storage
An application-oriented unified storage layer for Golang.
Stars: ✭ 87 (-78.2%)
Mutual labels:  s3, fs
Litfs
A FUSE file system in Go extended with persistent file storage
Stars: ✭ 116 (-70.93%)
Mutual labels:  fuse, fs
S3fs
S3 FileSystem (fs.FS) implementation
Stars: ✭ 93 (-76.69%)
Mutual labels:  s3, fs
fs-fuse
Export any Node.js `fs`-like object as a FUSE filesystem
Stars: ✭ 32 (-91.98%)
Mutual labels:  fuse, fs
acid-store
A library for secure, deduplicated, transactional, and verifiable data storage
Stars: ✭ 48 (-87.97%)
Mutual labels:  fuse, s3
Goofys
a high-performance, POSIX-ish Amazon S3 file system written in Go
Stars: ✭ 3,932 (+885.46%)
Mutual labels:  s3, fuse
Seaweedfs
SeaweedFS is a fast distributed storage system for blobs, objects, files, and data lake, for billions of files! Blob store has O(1) disk seek, cloud tiering. Filer supports Cloud Drive, cross-DC active-active replication, Kubernetes, POSIX FUSE mount, S3 API, S3 Gateway, Hadoop, WebDAV, encryption, Erasure Coding.
Stars: ✭ 13,380 (+3253.38%)
Mutual labels:  s3, fuse
Infinit
The Infinit policy-based software-defined storage platform.
Stars: ✭ 363 (-9.02%)
Mutual labels:  s3, fuse
go-storage
A vendor-neutral storage library for Golang: Write once, run on every storage service.
Stars: ✭ 387 (-3.01%)
Mutual labels:  fs, s3
S3mock
A simple mock implementation of the AWS S3 API startable as Docker image, JUnit 4 rule, or JUnit Jupiter extension
Stars: ✭ 332 (-16.79%)
Mutual labels:  s3, mock
Mimic
Seamless client side mocking
Stars: ✭ 380 (-4.76%)
Mutual labels:  mock
Edgefs
EdgeFS - decentralized, scalable data fabric platform for Edge/IoT Computing and Kubernetes apps
Stars: ✭ 358 (-10.28%)
Mutual labels:  s3
Commuter
🚎 Notebook sharing hub
Stars: ✭ 353 (-11.53%)
Mutual labels:  s3
Nodb
NoDB isn't a database.. but it sort of looks like one.
Stars: ✭ 353 (-11.53%)
Mutual labels:  s3
Filer
Node-like file system for browsers
Stars: ✭ 389 (-2.51%)
Mutual labels:  fs
Svfs
The Swift Virtual File System
Stars: ✭ 375 (-6.02%)
Mutual labels:  fuse
Fakerest
Patch fetch/XMLHttpRequest to fake a REST API server in the browser, based on JSON data.
Stars: ✭ 350 (-12.28%)
Mutual labels:  mock
Mastermind
Man in the middle testing
Stars: ✭ 341 (-14.54%)
Mutual labels:  mock
Miragejs
A client-side server to build, test and share your JavaScript app
Stars: ✭ 4,384 (+998.75%)
Mutual labels:  mock

s3monkey: Access your S3 buckets like they're native files

Platforms like Heroku <https://heroku.com/>_ don't allow for FUSE filesystem usage, so I had to get a bit creative.

Introducing, s3monkey, a library that mocks out all standard Python library system file operations, allowing you to use already–written code to interface with Amazon S3.

All standard library file operation modules are patched when using the provided context manager, including the built–in open, os, io, & pathlib.

If you're interested in financially supporting Kenneth Reitz open source, consider visiting this link <https://cash.me/$KennethReitz>_. Your support helps tremendously with sustainability of motivation, as Open Source is no longer part of my day job.

Potential Use Cases

  • Running Jupyter Notebooks on non-persistient storage (still being worked out).
  • Storing user uploads for Django applications (e.g. the media folder).

Usage

AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY are expected to be set:

.. code-block:: shell

$ AWS_ACCESS_KEY_ID=xxxxxxxxxxx
$ AWS_SECRET_ACCESS_KEY=xxxxxxxxxxx

Basic usage:

.. code-block:: python

from s3monkey import S3FS

with S3FS(bucket='media.kennethreitz.com', mount_point='/app/data') as fs:

    # Create a 'test' key on S3, with the contents of 'hello'.
    with open('/app/data/test', 'w') as f:
        f.write('hello')

    # List the keys in the S3 bucket.
    print(os.listdir('/app/data'))
    # ['file1.txt', 'file2.txt', 'file2.txt', 'test', …]

Installation

.. code-block:: shell

$ pipenv install s3monkey

This module only supports Python 3.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].