没有项目描述

s3path的Python项目详细描述


S3路径

Latest versionTravis-CI

s3 path使用boto3 s3资源作为驱动程序,为awss3服务提供了一个类似python的文件系统/路径接口。

类似于pathlib,但对于s3 bucket

aws s3是最流行的云存储解决方案之一。它的对象存储,是为了从任何地方存储和检索各种数量的数据而构建的。

目前,python开发人员使用boto3作为默认api,从s3连接/放置/获取/列出/删除文件。

S3Path融合了Boto3的易用性和Pathlib API的熟悉性。

安装:

$ pip install s3path

基本用途:

以下示例假设S3 bucket设置如下所示:

$ aws s3 ls s3://pypi-proxy/

2018-04-24 22:59:59        186 requests/index.html
2018-04-24 22:59:57     485015 requests/requests-2.9.1.tar.gz
2018-04-24 22:35:01      89112 boto3/boto3-1.4.1.tar.gz
2018-04-24 22:35:02        180 boto3/index.html
2018-04-24 22:35:19    3308919 botocore/botocore-1.4.93.tar.gz
2018-04-24 22:35:36        188 botocore/index.html

导入主类:

>>>froms3pathimportS3Path

列出“子目录”-s3键可以像文件系统一样拆分,在s3path we:

>>>bucket_path=S3Path('/pypi-proxy/')>>>[pathforpathinbucket_path.iterdir()ifpath.is_dir()][S3Path('/pypi-proxy/requests/'),S3Path('/pypi-proxy/boto3/'),S3Path('/pypi-proxy/botocore/')]

在此“目录”树中列出HTML源文件:

>>>bucket_path=S3Path('/pypi-proxy/')>>>list(bucket_path.glob('**/*.html'))[S3Path('/pypi-proxy/requests/index.html'),S3Path('/pypi-proxy/boto3/index.html'),S3Path('/pypi-proxy/botocore/index.html')]

在“目录”树中导航:

>>>bucket_path=S3Path('/pypi-proxy/')>>>boto3_package_path=bucket_path/'boto3'/'boto3-1.4.1.tar.gz'>>>boto3_package_pathS3Path('/pypi-proxy/boto3/boto3-1.4.1.tar.gz')

查询路径属性:

>>>boto3_package_path=S3Path('/pypi-proxy/boto3/boto3-1.4.1.tar.gz')>>>boto3_package_path.exists()True>>>boto3_package_path.is_dir()False>>>boto3_package_path.is_file()True

打开“文件”(S3键):

>>>botocore_index_path=S3Path('/pypi-proxy/botocore/index.html')>>>withbotocore_index_path.open()asf:>>>print(f.read())"""
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Package Index</title>
</head>
<body>
    <a href="botocore-1.4.93.tar.gz">botocore-1.4.93.tar.gz</a><br>
</body>
</html>
"""

或者只是阅读:

>>>botocore_index_path=S3Path('/pypi-proxy/botocore/index.html')>>>botocore_index_path.read_text()"""
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Package Index</title>
</head>
<body>
    <a href="botocore-1.4.93.tar.gz">botocore-1.4.93.tar.gz</a><br>
</body>
</html>
"""

要求:

  • python=3.4
  • BOTO3

所有接口的pathlib样式文档interface_docs

对于s3path与boto3比较boto3_comparison

对于高级功能(配置/s3参数)boto3_advance

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何分割字符串并将其存储在列表或映射中?   java是否存在(i!=i)将被计算为true的场景?   C中ObjectInputStream和ObjectOutputStream的java等价物#   java确定一个球体是否完全被放置在其周围的其他球体包围   在Java中,检查字符是否为元音的最佳方法是什么?   java有人能帮我在fighter类中使用攻击方法吗   java将列值映射到枚举第一个参数   java Hibernate获取结果集中行的位置   java JComboBox不显示元素   java定时注释和自定义StringResolver   java如何计算两个DateTime对象之间的差异(以天为单位)?   java Hibernate尝试更新只读对象的版本号   c#在java中检索cookieContainer中的数据   javascript我的网站在3次操作后无限期加载   无法创建HornetQ:java的网络连接。网SocketTimeoutException:连接超时   不可变类的java策略这是矛盾吗?   Java中图形的空间高效表示法?   带Void的java模板形式参数   java在“从内部发送邮件”中添加标题。就像“堆栈溢出”<donotreply@stackoverflow.email>"