如何使用python将流上传到AWS s3

2024-01-15

我想创建一个从 S3 获取 zip 文件(可能包含 csv 文件列表)的 lambda,将其解压缩并上传回 s3。 由于 lambda 受到内存/磁盘大小的限制,我必须将其从 s3 流式传输并返回到其中。 我使用 python (boto3) 请参阅下面的我的代码

count = 0
obj = s3.Object( bucket_name, key )
buffer = io.BytesIO(obj.get()["Body"].read())
print (buffer)
z = zipfile.ZipFile(buffer)
for x in z.filelist:
    with z.open(x) as foo2:
        print(sys.getsizeof(foo2))
        line_counter = 0
        out_buffer = io.BytesIO()
        for f in foo2:
            out_buffer.write(f)
            # out_buffer.writelines(f)
            line_counter += 1
        print (line_counter)
        print foo2.name
        s3.Object( bucket_name, "output/"+foo2.name+"_output" ).upload_fileobj(out_buffer)
        out_buffer.close()
z.close()

结果是,在存储桶中创建空文件。 例如:如果文件:input.zip 包含文件:1.csv,2.csv 我在桶中得到了 2 个具有相应名称的空 csv 文件。 另外,我不确定它是否确实流式传输文件,或者只是下载所有 zip 文件 谢谢


你需要seek https://docs.python.org/3/library/io.html#io.IOBase.seek返回到上传之前的 ByesIO 文件的开头。

out_buffer = io.BytesIO()
for f in foo2:
    out_buffer.write(f)
    # out_buffer.writelines(f)
    line_counter += 1

out_buffer.seek(0) # Change stream position to beginning of file

s3.Object( bucket_name, "output/"+foo2.name+"_output").upload_fileobj(out_buffer)
out_buffer.close()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用python将流上传到AWS s3 的相关文章

  • 在 python 程序中合并第三方库的最佳实践是什么?

    下午好 我正在为我的工作编写一个中小型Python程序 该任务需要我使用 Excel 库xlwt and xlrd 以及一个用于查询 Oracle 数据库的库 称为CX Oracle 我正在通过版本控制系统 即CVS 开发该项目 我想知道围
  • Python 的键盘中断不会中止 Rust 函数 (PyO3)

    我有一个使用 PyO3 用 Rust 编写的 Python 库 它涉及一些昂贵的计算 单个函数调用最多需要 10 分钟 从 Python 调用时如何中止执行 Ctrl C 好像只有执行结束后才会处理 所以本质上没什么用 最小可重现示例 Ca
  • 从字符串中删除识别的日期

    作为输入 我有几个包含不同格式日期的字符串 例如 彼得在16 45 我的生日是1990年7月8日 On 7 月 11 日星期六我会回家 I use dateutil parser parse识别字符串中的日期 在下一步中 我想从字符串中删除
  • 如何替换 pandas 数据框列中的重音符号

    我有一个数据框dataSwiss其中包含瑞士城市的信息 我想用普通字母替换带有重音符号的字母 这就是我正在做的 dataSwiss Municipality dataSwiss Municipality str encode utf 8 d
  • 根据列值突出显示数据框中的行?

    假设我有这样的数据框 col1 col2 col3 col4 0 A A 1 pass 2 1 A A 2 pass 4 2 A A 1 fail 4 3 A A 1 fail 5 4 A A 1 pass 3 5 A A 2 fail 2
  • 如何从网页中嵌入的 Tableau 图表中抓取工具提示值

    我试图弄清楚是否有一种方法以及如何使用 python 从网页中的 Tableau 嵌入图形中抓取工具提示值 以下是当用户将鼠标悬停在条形上时带有工具提示的图表示例 我从要从中抓取的原始网页中获取了此网址 https covid19 colo
  • 是否可以忽略一行的pyright检查?

    我需要忽略一行的pyright 检查 有什么特别的评论吗 def create slog group SLogGroup data Optional dict None SLog insert one SLog group group da
  • 测试 python Counter 是否包含在另一个 Counter 中

    如何测试是否是pythonCounter https docs python org 2 library collections html collections Counter is 包含在另一个中使用以下定义 柜台a包含在计数器中b当且
  • 基于代理的模拟:性能问题:Python vs NetLogo & Repast

    我正在 Python 3 中复制一小段 Sugarscape 代理模拟模型 我发现我的代码的性能比 NetLogo 慢约 3 倍 这可能是我的代码的问题 还是Python的固有限制 显然 这只是代码的一个片段 但 Python 却花费了三分
  • 如何加速Python中的N维区间树?

    考虑以下问题 给定一组n间隔和一组m浮点数 对于每个浮点数 确定包含该浮点数的区间子集 这个问题已经通过构建一个解决区间树 https en wikipedia org wiki Interval tree 或称为范围树或线段树 已经针对一
  • Pygame:有没有简单的方法可以找到按下的任何字母数字的字母/数字?

    我目前正在开发的游戏需要让人们以自己的名义在高分板上计时 我对如何处理按键有点熟悉 但我只处理过寻找特定的按键 有没有一种简单的方法可以按下任意键的字母 而不必执行以下操作 for event in pygame event get if
  • 使用 \r 并打印一些文本后如何清除控制台中的一行?

    对于我当前的项目 有一些代码很慢并且我无法使其更快 为了获得一些关于已完成 必须完成多少的反馈 我创建了一个进度片段 您可以在下面看到 当你看到最后一行时 sys stdout write r100 80 n I use 80覆盖最终剩余的
  • Jupyter Notebook 内核一直很忙

    我已经安装了 anaconda 并且 python 在 Spyder IPython 等中工作正常 但是我无法运行 python 笔记本 内核被创建 它也连接 但它始终显示黑圈忙碌符号 防火墙或防病毒软件没有问题 我尝试过禁用两者 我也无法
  • 如何在Python中对类别进行加权随机抽样

    给定一个元组列表 其中每个元组都包含一个概率和一个项目 我想根据其概率对项目进行采样 例如 给出列表 3 a 4 b 3 c 我想在 40 的时间内对 b 进行采样 在 python 中执行此操作的规范方法是什么 我查看了 random 模
  • 如何在seaborn displot中使用hist_kws

    我想在同一图中用不同的颜色绘制直方图和 kde 线 我想为直方图设置绿色 为 kde 线设置蓝色 我设法弄清楚使用 line kws 来更改 kde 线条颜色 但 hist kws 不适用于显示 我尝试过使用 histplot 但我无法为
  • 使用随机目录结构重命名传入的 S3 文件

    我有一个可以将文件发送到 s3 存储桶的应用程序 不幸的是 我无法更改它在 s3 中发送到的路径 因此我必须找到一种方法来获取该文件 mys3bucket apps region 020 07 14T22 24 34Z details cs
  • PHPUnit - 模拟 S3Client 无法正常工作

    库 aws aws sdk php 2 PHP 版本 PHP 5 4 24 cli 作曲家 json require php gt 5 3 1 aws aws sdk php 2 require dev phpunit phpunit 4
  • 使用 Python 的 matplotlib 选择在屏幕上显示哪些图形以及将哪些图形保存到文件中

    我想用Python创建不同的图形matplotlib pyplot 然后 我想将其中一些保存到文件中 而另一些则应使用show 命令 然而 show 显示all创建的数字 我可以通过调用来避免这种情况close 创建我不想在屏幕上显示的绘图
  • 如何使用 Pycharm 安装 tkinter? [复制]

    这个问题在这里已经有答案了 I used sudo apt get install python3 6 tk而且效果很好 如果我在终端中打开 python Tkinter 就可以工作 但我无法将其安装在我的 Pycharm 项目上 pip
  • 如何将输入读取为数字?

    这个问题的答案是社区努力 help privileges edit community wiki 编辑现有答案以改进这篇文章 目前不接受新的答案或互动 Why are x and y下面的代码中使用字符串而不是整数 注意 在Python 2

随机推荐

  • Angular 2获取路线没有路线提供者

    在 Angular 2 中我希望能够使用route path 获取路径 在组件构造函数内我有 constructor private route Route 所以我希望能够致电 this route path 对于应用程序引导我得到 boo
  • std::any 跨越 mingw 中的共享库边界

    我在跨共享库边界使用 mingw 的 libstdc 的 std any 实现时偶然发现了一个问题 它产生一个std bad any cast显然不应该 我相信 我使用 mingw w64 gcc 7 并使用 std c 1z 编译代码 简
  • WCF 分块/流式传输

    我正在使用 WCF 想要将一个大文件从客户端上传到服务器 我已经调查并决定遵循以下概述的分块方法http msdn microsoft com en us library aa717050 aspx http msdn microsoft
  • HTML 隐藏控件有任何事件吗?比如onchange之类的?

    我可以将任何事件处理程序附加到 HTML 隐藏输入字段吗 基本上我想在隐藏输入字段值更改时运行一个函数 仅当用户在浏览器中执行事件时才会触发事件 因此如果
  • onclick="parent.location 在 Firefox 和 Chrome 中不起作用

    a a table class SectionHeader1 tbody tr td Customer Information td tr tbody table table class TheBox align center tbody
  • 无法使用反射和 .NET 5 顶级调用找到 Main 方法

    var pt Type GetType
  • 时间范围内的“一对多”关系完整性问题

    假设我有这样的表 CREATE TABLE foo id SERIAL PRIMARY KEY barid integer NOT NULL REFERENCES bar id bazid integer NOT NULL REFERENC
  • 为什么 CPU 上的 Keras LSTM 比 GPU 上快三倍?

    I use 这本来自 Kaggle 的笔记本 https www kaggle com sbongo for beginners tackling toxic using keras运行 LSTM 神经网络 我已经开始训练神经网络 我发现它
  • 注册令牌不是有效的 FCM 注册令牌

    我正在尝试使用从 Android 设备的 PassWallet 应用程序中保存的票证中获取的令牌向我的设备发送消息 该设备使用苹果钱包规范发 送更新通行证所需的所有信息 但是 我使用 FCM 发送通知 但收到此错误 注册令牌不是有效的 FC
  • Windows:如何将驱动器符号链接到另一个驱动器?

    我有一个客户 其数据已从 H 驱动器移至 I 驱动器 但他们的 Access 导出脚本似乎已将 H 驱动器硬编码为目标 即使它不再存在于新系统上 如何创建映射到 I 驱动器的 H 驱动器 我是一个 unix linux 人 我猜是这样的mk
  • 在.NET Core中编译Sass文件

    我正在尝试将 Sass 文件添加到 Visual Studio 2017 中的 NET Core 应用程序中 但是 在创建 scss 文件后 我找不到任何方法来编译它们 我筛选了 NPM 和 Bower 但都没有提供对 Sass 的支持 添
  • 如何在 Visual Studio 中禁用自动插入的“内联”关键字?

    我喜欢移动定义位置Visual Studio 2015 的重构功能除了一件事之外 它会自动插入inline关键字位于函数定义之前 所以我总是不得不自己删除它们 是这样的 重构之前 class GameLoop public void dra
  • 如何从 highstock 图表中提取数据

    假设我有一个示例 highstock 图表 例如this http www highcharts com stock demo basic line在网站中 我想知道是否可以单独从图表中提取数据 即图表是由第三人创建的 并且其他人无法访问图
  • python cdll找不到模块

    我有一个由两个 dll 文件和一个 python 包装器组成的库 我目前的代码基于这三个文件 它们与我的主 python 文件位于同一父目录中 我现在尝试在继续开发之前重构一些东西 并希望将所述库代码移动到它自己的 lib 目录中 不幸的是
  • PowerShell 中从第一个到倒数第二个的数组索引

    如何获取从第一个到倒数第二个的数组元素范围 例如 array 1 2 3 4 5 array 0 will give me the first 1 array 2 will give me the second last 4 array 0
  • Windows Phone 7 SQL Server CE 行版本

    我在 Windows Phone 7 上的 SQL Server CE 中更新表时遇到问题 当我调用提交更改时 应用程序将关闭 没有任何异常或错误 Visual Studio 甚至仍在运行 删除rowversion专栏解决了这个问题 我环顾
  • 使用 ng-switch 时如何防止控制器重新加载

    在此示例中 使用 ng switch 我可以在不同视图之间切换 每个视图都分配有一个控制器 我在网上放了一个快速示例 http jsfiddle net FBHjZ 1 http jsfiddle net FBHjZ 1 看起来每次我切换视
  • ASP.NET MVC 项目和 App_Code 文件夹

    为什么 VS 解决方案资源管理器的 添加 ASP NET 文件夹 子菜单中没有选择 App Code 我知道您可以通过重命名新文件夹来手动创建一个新文件夹 但这里的理由是什么 这不是你应该放置 实用程序 或 服务层 类型类的地方吗 关于 M
  • 没有为类型定义序列化程序:System.Windows.Media.Media3D.Point3D

    我正在尝试使用 protobuf 网络序列化一些数据 在序列化过程中 我收到一条错误 指出没有为 Point3D 类型定义序列化 我发现一个类似的问题 但仍然无法实施和解决 链接如下 没有为类型定义序列化器 System Drawing C
  • 如何使用python将流上传到AWS s3

    我想创建一个从 S3 获取 zip 文件 可能包含 csv 文件列表 的 lambda 将其解压缩并上传回 s3 由于 lambda 受到内存 磁盘大小的限制 我必须将其从 s3 流式传输并返回到其中 我使用 python boto3 请参