跳转到主要内容

PyFilesystem2的Amazon S3文件系统

项目描述

S3FS是PyFilesystem接口,用于Amazon S3云存储。

作为PyFilesystem的具体类,S3FS允许您以与其他支持的文件系统相同的方式处理S3。

安装

您可以通过以下方式从pip安装S3FS

pip install fs-s3fs

打开S3FS

通过显式使用构造函数打开S3FS

from fs_s3fs import S3FS
s3fs = S3FS('mybucket')

或者使用FS URL

from fs import open_fs
s3fs = open_fs('s3://mybucket')

下载文件

要从S3存储桶中下载文件,请打开S3文件系统上的文件以进行读取,然后将数据写入本地文件系统上的文件。以下是将文件example.mov从S3复制到您硬盘上的示例

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)

虽然建议使用fs.copy模块中的高级功能。以下是一个示例

from fs.copy import copy_file
copy_file(s3fs, 'example.mov', './', 'example.mov')

上传文件

您可以使用相同的方式上传文件。只需将源文件系统上的文件复制到S3文件系统即可。有关更多信息,请参阅移动和复制

额外参数

S3对象具有超出传统文件系统的额外属性。这些选项可以使用upload_argsdownload_args属性设置,这些属性在文件系统实例的生命周期内适当传递给上传和下载方法。

例如,要设置上传到存储桶的所有对象的cache-control

import fs, fs.mirror
s3fs = S3FS('example', upload_args={"CacheControl": "max-age=2592000", "ACL": "public-read"})
fs.mirror.mirror('/path/to/mirror', s3fs)

有关更多信息,请参阅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 s3fs
    fs.mirror.mirror('/path/to/mirror', s3fs)

S3 URL

您可以通过以下方式获取S3存储桶中文件的公开URL

movie_url = s3fs.geturl('example.mov')

文档

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解有关 安装包 的更多信息。

源分发

fs-s3fs-1.1.1.tar.gz (10.4 kB 查看哈希值)

上传时间

构建分发

fs_s3fs-1.1.1-py2.py3-none-any.whl (9.7 kB 查看哈希值)

上传时间 Python 2 Python 3

由以下机构支持