MinIO S3文件系统用于PyFilesystem2
项目描述
MINIOFS是PyFilesystem接口,用于Amazon S3云存储。
作为PyFilesystem的具体类,MINIOFS允许您以与任何其他支持的文件系统相同的方式处理S3。
安装
您可以通过以下方式从pip安装MINIOFS
pip install fs-miniofs
打开MINIOFS
通过显式使用构造函数打开MINIOFS
from fs_miniofs import MINIOFS
miniofs = MINIOFS('mybucket')
或使用FS URL
from fs import open_fs
miniofs = open_fs('minio://mybucket')
下载文件
要从S3存储桶下载文件,请打开S3文件系统上的文件进行读取,然后将数据写入本地文件系统上的文件。以下是将文件example.mov从S3复制到您硬盘的示例
from fs.tools import copy_file_data
with miniofs.open('example.mov', 'rb') as remote_file:
with open('example.mov', 'wb') as local_file:
copy_file_data(remote_file, local_file)
尽管使用fs.copy模块的高级功能更可取。以下是一个示例
from fs.copy import copy_file
copy_file(miniofs, 'example.mov', './', 'example.mov')
上传文件
您可以以相同的方式上传文件。只需将源文件系统上的文件复制到S3文件系统即可。有关更多信息,请参阅移动和复制
额外参数
S3对象具有除传统文件系统之外的额外属性。这些选项可以通过使用 upload_args 和 download_args 属性来设置,这些属性在文件系统实例的生命周期内适当地传递给上传和下载方法。
例如,要设置上传到存储桶的所有对象的 cache-control 头部
import fs, fs.mirror
miniofs = MINIOFS('example', upload_args={"CacheControl": "max-age=2592000", "ACL": "public-read"})
fs.mirror.mirror('/path/to/mirror', miniofs)
有关更多信息,请参阅 Boto3 文档。
acl 和 cache_control 明确暴露以方便使用,并可用于URL。在URL中,重要的是对 cache_control 的值进行URL转义,因为它可能包含特殊字符。
import fs, fs.mirror
with open fs.open_fs('s3://example?acl=public-read&cache_control=max-age%3D2592000%2Cpublic') as miniofs
fs.mirror.mirror('/path/to/mirror', miniofs)
S3 URL
您可以通过以下方式获取S3存储桶中文件的公开URL
movie_url = miniofs.geturl('example.mov')
文档
项目详情
下载文件
下载适合您平台文件。如果您不确定选择哪一个,请了解有关 安装包 的更多信息。
源分布
fs-miniofs-1.1.2.tar.gz (10.4 kB 查看哈希值)
构建分布
fs_miniofs-1.1.2-py2.py3-none-any.whl (10.6 kB 查看哈希值)
关闭
fs-miniofs-1.1.2.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 726ed3ec950c62aae2e2de64f4aefcfc6835ee00e3a3e5678054aa552f77d465 |
|
MD5 | eba437b916736c1ec084c58cf8377003 |
|
BLAKE2b-256 | 3536ae666c05f929876aed87cbac395e342fa3fc0a57c3115a2026fa5eaa40c2 |
关闭
fs_miniofs-1.1.2-py2.py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 3ceae023ad9cd67bf30517f6514ea95c543497c274e7966c385219431e180c9b |
|
MD5 | 2534fab3e4c95e3ece7ab208f113f1a7 |
|
BLAKE2b-256 | 37069801f6e13bd07f7c523784e9aa39ef4926d7fb9953ded36e1a3bf71cd7cc |