python读取s3文件数据

S3是Amazon Web Services (AWS) 提供的一种对象存储服务,全称为 Amazon Simple Storage Service。它提供了一种高度可扩展、安全且持久的云存储解决方案。

在S3中,用户可以存储和检索任意数量的数据,包括文件、图片、视频等任何类型的二进制数据或文本数据,并通过互联网进行访问。S3支持海量存储空间,可以根据需求随时增加或减少存储容量,并按实际用量付费。
S3的主要特点包括:

可靠性:数据在多个设施中冗余存储,确保高可用性和耐用性。
安全性:支持多种加密方式,如服务器端加密(SSE-S3, SSE-KMS, 或者客户提供的密钥),以及访问控制列表(ACL)和IAM策略来管理权限。
大规模存储:能够存储PB级的数据,并能处理极高的请求率。
低成本:仅需为实际使用的存储量、请求次数和数据流出量付费。
易用性:提供了简单的Web界面和丰富的API接口,便于管理和操作存储桶及其中的对象。

S3广泛应用于各种场景,例如网站托管、备份与恢复、数据分析、内容分发、应用程序开发等。

s3cmd 是一个开源的命令行工具,用于与Amazon S3服务进行交互。它允许用户通过命令行界面上传、下载、管理存储在S3上的文件和桶(bucket)。使用s3cmd可以方便地执行常见的S3操作,例如:

创建、删除和列出S3桶
上传、下载和删除S3对象(文件)
设置访问控制列表(ACLs)以控制对象权限
同步本地目录与S3桶或反之
进行多部分上传大文件

下面简单介绍如何使用s3fs模块从python读取s3的数据:

# 封装s3函数
def s3fs_data(file_name, file_sep, col_name):
    """
    参数:
    file_name 文件名
    file_sep 文件分隔符
    col_name 文件字段名
    
    返回值:
    pdf pandas的df数据
    """
    import pandas as pd
    import s3fs
    # ccs存储桶名称
    bucket_name = '10-bucket'
    # 文件名
    file_name = file_name
    # 设置你访问密钥
    access_key = '123456'  
    secret_key = '123456'
    # 创建 S3 文件系统对象,指定自定义的 S3 服务端点和访问密钥
    custom_endpoint = 'http://127.0.0.1:8011'
    s3 = s3fs.S3FileSystem(key=access_key, secret=secret_key, client_kwargs={'endpoint_url': custom_endpoint})
    # 读数转为pandas df数据格式
    with s3.open(f's3://{bucket_name}/{file_name}') as f:
        pdf = pd.read_csv(f, sep=file_sep, names=col_name, header=None, encoding="utf-8")
    return pdf
%%time
# 传入参数
file_name = 'oneid_cache.txt'
file_sep = '|'
col_name = ['r_inst_id', 'offer_list', 'filter_prod_offer_inst_list', 'fuka_serv_offer_list', 'filter_list', 'new_serv_id','if_gzjy']

oneid_pdf = s3fs_data(file_name=file_name, file_sep=file_sep, col_name=col_name)
oneid_pdf.head()
  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

灯下夜无眠

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值