Forked from https://github.com/PyFilesystem/s3fs/
to be able to set the endpoint in the url
to be able to skip to directory creation/removal to improve performance
S3FS
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-forked
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
Releasing
Update version number in _version.py
install build dependencies: pip install wheel twine
install pandoc
make release
Metadata
Release files for fs-s3fs-forked 1.1.4
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| fs_s3fs_forked-1.1.4.tar.gz | 11.9 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| fs_s3fs_forked-1.1.4-py2.py3-none-any.whl | Python 3, Python 2 | none | any | Details |
Total release size: 23.0 kB
Release files / fs_s3fs_forked-1.1.4.tar.gz
| Download URL | fs_s3fs_forked-1.1.4.tar.gz |
|---|---|
| Size | 11.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
c22bd70ea4eff9013edbc87ec6d24269d3b3e568ca3b37b54df2a917cef145c0
|
|
BLAKE2b-256 checksum How to use checksums |
9c6ac2e858d961f2f3b7f1bcea2801ef60b48ed1eb12ed85de2090928d4c36b3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.10.12
|
Release files / fs_s3fs_forked-1.1.4-py2.py3-none-any.whl
| Download URL | fs_s3fs_forked-1.1.4-py2.py3-none-any.whl |
|---|---|
| Size | 11.0 kB |
| Tags | Python 2 Python 3 |
|
SHA-256 checksum How to use checksums |
f9a1333ba6c3fe0357d34511a82e97f406de7f326f454f61d85388f513adf34a
|
|
BLAKE2b-256 checksum How to use checksums |
e2024753e220a7add06f8365c340c77acb4bec80e79c43c548d2e54b7edeae8e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.10.12
|
Security for fs-s3fs-forked 1.1.4
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.