S3FS is a PyFilesystem interface to Amazon S3 cloud storage.
As a PyFilesystem concrete class, S3FS allows you to work with S3 in the same way as any other supported filesystem.
Installing
You can install S3FS from pip as follows:
pip install fs-s3fs
Opening a S3FS
Open an S3FS by explicitly using the constructor:
from fs_s3fs import S3FS
s3fs = S3FS('mybucket')
Or with a FS URL:
from fs import open_fs
s3fs = open_fs('s3://mybucket')
Downloading Files
To download files from an S3 bucket, open a file on the S3 filesystem for reading, then write the data to a file on the local filesystem. Here’s an example that copies a file example.mov from S3 to your HD:
from fs.tools import copy_file_data
with s3fs.open('example.mov', 'rb') as remote_file:
with open('example.mov', 'wb') as local_file:
copy_file_data(remote_file, local_file)
Although it is preferable to use the higher-level functionality in the fs.copy module. Here’s an example:
from fs.copy import copy_file
copy_file(s3fs, 'example.mov', './', 'example.mov')
Uploading Files
You can upload files in the same way. Simply copy a file from a source filesystem to the S3 filesystem. See Moving and Copying for more information.
ExtraArgs
S3 objects have additional properties, beyond a traditional filesystem. These options can be set using the upload_args and download_args properties. which are handed to upload and download methods, as appropriate, for the lifetime of the filesystem instance.
For example, to set the cache-control header of all objects uploaded to a bucket:
import fs, fs.mirror
s3fs = S3FS('example', upload_args={"CacheControl": "max-age=2592000", "ACL": "public-read"})
fs.mirror.mirror('/path/to/mirror', s3fs)
see the Boto3 docs for more information.
acl and cache_control are exposed explicitly for convenience, and can be used in URLs. It is important to URL-Escape the cache_control value in a URL, as it may contain special characters.
import fs, fs.mirror
with open fs.open_fs('s3://example?acl=public-read&cache_control=max-age%3D2592000%2Cpublic') as s3fs
fs.mirror.mirror('/path/to/mirror', s3fs)
S3 URLs
You can get a public URL to a file on a S3 bucket as follows:
movie_url = s3fs.geturl('example.mov')
Documentation
Release files for fs-s3fs 1.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| fs-s3fs-1.1.1.tar.gz | 10.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| fs_s3fs-1.1.1-py2.py3-none-any.whl | Python 3, Python 2 | none | any | Details |
Total release size: 20.0 kB
Release files / fs-s3fs-1.1.1.tar.gz
| Download URL | fs-s3fs-1.1.1.tar.gz |
|---|---|
| Size | 10.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b57f8c7664460ff7b451b4b44ca2ea9623a374d74e1284c2d5e6df499dc7976c
|
|
BLAKE2b-256 checksum How to use checksums |
bef1b641963f8694cdf7c3daed0276fef361c2b51717bf5f3e8a89b63c8ba237
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
Python-urllib/3.7
|
Release files / fs_s3fs-1.1.1-py2.py3-none-any.whl
| Download URL | fs_s3fs-1.1.1-py2.py3-none-any.whl |
|---|---|
| Size | 9.7 kB |
| Tags | Python 2 Python 3 |
|
SHA-256 checksum How to use checksums |
9ba160eaa93390cc5992a857675666cb2fbb3721b872474dfdc659a715c39280
|
|
BLAKE2b-256 checksum How to use checksums |
14719b36a6dbd28386e2028e4ab9aac9c30874fc9c74d6b8fa0c8c2806548311
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
Python-urllib/3.7
|