PyFileSystem2的阿里云OSS文件系统
fs-ossfs的Python项目详细描述
ossfs是 阿里云OSS云存储。
作为pyfilesystem的具体类, OSSFS允许您工作 与任何其他受支持的文件系统一样使用oss。
安装
您可以从pip安装OSSFS,如下所示:
pip install fs-ossfs
打开OSSFS
通过显式使用构造函数打开ossfs:
fromfs_ossfsimportOSSFSossfs=OSSFS('mybucket')
或使用fs url:
fromfsimportopen_fsossfs=open_fs('oss://mybucket')
下载文件
要从oss bucket中下载文件,请在oss上打开一个文件 文件系统进行读取,然后将数据写入本地文件 文件系统下面是一个从中复制文件example.mov的示例 OSS到您的高清:
fromfs.toolsimportcopy_file_datawithossfs.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(ossfs,'example.mov','./','example.mov')
上载文件
您可以用同样的方法上载文件。只需从源复制文件 文件系统到OSS文件系统。见Moving and Copying 更多信息。
附加参数
除了传统的文件系统,oss对象还有其他属性。 可以使用upload_args和^{tt4}设置这些选项$ 财产。它们被用于上传和下载方法,如 适用于文件系统实例的生存期。
例如,要设置上载的所有对象的cache-control头 桶:
importfs,fs.mirrorossfs=OSSFS('example',upload_args={"CacheControl":"max-age=2592000","ACL":"public-read"})fs.mirror.mirror('/path/to/mirror',ossfs)
见the Boto3 docs 更多信息。
acl和cache_control为了方便而显式公开, 可以在url中使用。重要的是URL转义 cache_controlURL中的值,因为它可能包含特殊字符。
importfs,fs.mirrorwithopenfs.open_fs('oss://example?acl=public-read&cache_control=max-age%3D2592000%2Cpublic')asossfsfs.mirror.mirror('/path/to/mirror',ossfs)
OSS网址
您可以获得OSS存储桶上文件的公共URL,如下所示:
movie_url=ossfs.geturl('example.mov')