当前位置: 首页 > 知识库问答 >
问题:

Python AWS Boto3:如何从S3存储桶读取文件?

姚凯歌
2023-03-14

使用Boto3,python脚本从S3桶中下载文件以读取它们,并将下载文件的内容写入名为blank_file.txt的文件。

我的问题是,一旦脚本使用AWS Lambda函数,它将如何以相同的方式工作?

共有2个答案

慕宏儒
2023-03-14

AWS Lambda函数在执行函数时可在“/tmp”中获得500MB的临时空间用于临时存储。

https://aws.amazon.com/lambda/faqs/

郎飞航
2023-03-14

Lambda提供512 MB的/tmp空间。您可以使用该装载点来存储下载的S3文件或创建新文件。

s3client.download_file(bucket_name, obj.key, '/tmp/'+filename)
...
blank_file = open('/tmp/blank_file.txt', 'w')

Lambda使用的工作目录是/var/task,它是一个只读文件系统。您将无法在其中创建文件。

 类似资料:
  • 问题内容: 我这样做是读取了S3存储桶中的文件名 现在,我需要获取文件的实际内容,类似于。什么是最好的方法? 问题答案: boto3提供了一种资源模型,该资源模型使诸如迭代对象之类的任务变得更加容易。不幸的是,StreamingBody不提供或。

  • 问题内容: 我在下面有s3存储桶网址 s3_filename是 如果它是存储桶,我可以阅读以下代码 问题答案: 由于您似乎正在使用熊猫,因此请注意,它实际上是在盖子下使用的。因此,如果您的安装相对较新且标准,则可以直接执行以下操作: 如果您的存储桶有一些特定的配置,例如特殊凭证,KMS加密等,则可以使用显式配置的文件系统,例如: 就是说,如果您真的很想处理对象,而问题只是关于如何删除潜在的前缀然后

  • 有没有一种方法可以将文件列表从一个S3存储桶复制到另一个存储桶?两个S3存储桶都在同一个AWS帐户中。我可以使用aws cli命令一次复制一个文件: 然而,我有1000份文件要复制。我不想复制源存储桶中的所有文件,因此无法使用sync命令。有没有一种方法可以用需要复制的文件名列表来调用一个文件,从而自动化这个过程?

  • 问题内容: 我有以下代码 而且有效。但是首先将文件下载到当前目录的问题。是否可以直接在RAM中读取文件并将其解码为图像? 问题答案: 我建议使用io模块直接将文件读取到内存中,而根本不必使用临时文件。 例如: 如果您的数据是二进制的,也可以使用。

  • 问题内容: 我正在尝试使用AWS S3存储桶中的文件进行读取 我已经能够使用节点aws-sdk下载和上传文件,但是我对如何简单地读取文件并解析内容感到困惑。 这是我从s3中读取文件的示例: 问题答案: 您有两种选择。您可以包括一个回调作为第二个参数,该参数将与任何错误消息和对象一起调用。该示例直接来自AWS文档: 或者,您可以将输出转换为流。AWS文档中还有一个示例:

  • 我正在使用Spring引导连接到谷歌云存储。 我能够连接到一个文件,并从谷歌云存储桶中读取内容。 但是我不能得到谷歌云存储桶中所有文件的列表。 请帮帮我。 这很有效 这不工作。 有什么原因吗?