Amazon S3文件系统for PyFilesystem2,默认为流式和非限制
fs-s3fs-ng的Python项目详细描述
S3FS是一个PyFilesystem接口 Amazon S3云存储。在
作为一个PyFilesystem具体类, S3FS允许您工作 与任何其他受支持的文件系统一样使用S3。在
安装
您可以从pip安装S3FS,如下所示:
pip install fs-s3fs-ng
打开S3FS
通过显式使用构造函数打开S3FS:
^{pr2}$或使用FS URL:
fromfsimportopen_fss3fs=open_fs('s3://mybucket')
正在下载文件
要从S3存储桶中download文件,请打开S3文件系统上的一个文件 对于读取,然后将数据写入本地文件系统上的文件。 下面是一个将文件example.mov从S3复制到HD的示例:
fromfs.toolsimportcopy_file_datawiths3fs.open('example.mov','rb')asremote_file:withopen('example.mov','wb')aslocal_file:copy_file_data(remote_file,local_file)
虽然最好使用 fs.copy模块。下面是一个例子:
fromfs.copyimportcopy_filecopy_file(s3fs,'example.mov','./','example.mov')
正在上载文件
您可以以相同的方式上载文件。只需从源复制一个文件 文件系统到S3文件系统。见Moving and Copying 了解更多信息。在
附加参数
除了传统的文件系统之外,S3对象还有其他属性。 可以使用upload_args和^{tt4}设置这些选项$ 属性。上传和下载方法,如 适用于文件系统实例的生存期。在
例如,设置上传的所有对象的cache-control头 对于一个桶:
importfs,fs.mirrors3fs=S3FS('example',upload_args={"CacheControl":"max-age=2592000","ACL":"public-read"})fs.mirror.mirror('/path/to/mirror',s3fs)
见the Boto3 docs 了解更多信息。在
为了方便起见,acl和cache_control显式公开, 并且可以在url中使用。重要的是URL转义 cache_control值,因为它可能包含特殊字符。在
importfs,fs.mirrorwithopenfs.open_fs('s3://example?acl=public-read&cache_control=max-age%3D2592000%2Cpublic')ass3fsfs.mirror.mirror('/path/to/mirror',s3fs)
S3 URL
您可以获取S3存储桶上文件的公共URL,如下所示:
movie_url=s3fs.geturl('example.mov')
- 项目
标签: