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_args和download_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文档。
为了方便起见,显式地公开了 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 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 查看哈希值)
关闭
fs-s3fs-1.1.1.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | b57f8c7664460ff7b451b4b44ca2ea9623a374d74e1284c2d5e6df499dc7976c |
|
MD5 | 7c329e91485fe2cdc001edf961da9d76 |
|
BLAKE2b-256 | bef1b641963f8694cdf7c3daed0276fef361c2b51717bf5f3e8a89b63c8ba237 |
关闭
fs_s3fs-1.1.1-py2.py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 9ba160eaa93390cc5992a857675666cb2fbb3721b872474dfdc659a715c39280 |
|
MD5 | 218e5e2d4f69be4642738e91afbfc209 |
|
BLAKE2b-256 | 14719b36a6dbd28386e2028e4ab9aac9c30874fc9c74d6b8fa0c8c2806548311 |