跳转到主要内容

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_argsdownload_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 文档

aclcache_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 查看哈希值)

上传时间 Python 2 Python 3

由以下机构支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面