当前位置: 首页 > 面试题库 >

如何使用boto3将文件或数据写入S3对象

仰英发
2023-03-14
问题内容

在boto 2中,可以使用以下方法写入S3对象

  • Key.set_contents_from_string()
  • Key.set_contents_from_file()
  • Key.set_contents_from_filename()
  • Key.set_contents_from_stream()

是否有boto 3等效项?将数据保存到S3上存储的对象的boto3方法是什么?


问题答案:

在boto 3中,“ Key.set_contents_from_”方法被替换为

  • Object.put()

  • Client.put_object()

例如:

import boto3

some_binary_data = b'Here we have some data'
more_binary_data = b'Here we have some more data'

# Method 1: Object.put()
s3 = boto3.resource('s3')
object = s3.Object('my_bucket_name', 'my/key/including/filename.txt')
object.put(Body=some_binary_data)

# Method 2: Client.put_object()
client = boto3.client('s3')
client.put_object(Body=more_binary_data, Bucket='my_bucket_name', Key='my/key/including/anotherfilename.txt')

另外,二进制数据可以来自读取文件,如官方文档中比较boto 2和boto
3所述

从文件,流或字符串存储数据很容易:

# Boto 2.x
from boto.s3.key import Key
key = Key('hello.txt')
key.set_contents_from_file('/tmp/hello.txt')

# Boto 3
s3.Object('mybucket', 'hello.txt').put(Body=open('/tmp/hello.txt',

‘rb’))



 类似资料:
  • 问题内容: 我正在尝试使用适用于AWS的新boto3客户端做一个“ hello world” 。 我的用例非常简单:从S3获取对象并将其保存到文件中。 在boto 2.XI中,它应该是这样的: 在boto 3中。我找不到一种干净的方法来做同样的事情,所以我手动遍历了“ Streaming”对象: 要么 而且效果很好。我想知道是否有任何“本机” boto3函数可以完成相同的任务? 问题答案: Bot

  • 我正在尝试为AWS的新boto3客户端做一个“hello world”。 我的用例相当简单:从S3获取对象并将其保存到文件中。 在boto 2.X中,我会这样做: 在博托3。我找不到一种干净的方法来做同样的事情,所以我手动迭代“流”对象: 或 而且效果很好。我想知道是否有任何“本机”boto3函数可以完成相同的任务?

  • 问题内容: 我正在制作一个混合移动应用程序,我需要存储一些数据,例如,如果它是一个游戏:高分等..到目前为止,它能够使用jquery从JSON文件中读取数据..,但是是否可以写到JSON文件??! 还是有其他方法可以这样做? IDE-Eclipse(插件-IBM Worklight Studio) 只能使用HTML 5以及JS和JQ! 谢谢 (: 问题答案: 您可以将JSON写入本地存储,而只需使

  • 问题内容: 例如,我有一个具有以下内容的文件: 将另一个对象推入此数组以使文件看起来像的JavaScript代码是什么 我要问的原因是我在网上找到了很多有关如何使用AJAX从.json文件中提取数据的信息,但没有使用AJAX将新数据写入.json文件以用其他数据更新.json文件。 任何帮助,将不胜感激! 问题答案: 您必须清楚“ JSON”的含义。 某些人错误地使用术语JSON来指代简单的旧Ja

  • 我正在尝试将以下数据写入csv文件。这些数据是employdetails name1-surname1-place1 名称4-surname4-place4 我希望输出在CSV文件上,一个在另一个下面,在单独的行上。 我写了下面的代码 -KD

  • 我有一个名为df的数据库数据帧。我想将它作为csv文件写入S3存储桶。我有S3存储桶名称和其他凭据。我检查了这里给出的在线留档https://docs.databricks.com/spark/latest/data-sources/aws/amazon-s3.html#mount-aws-s3它说使用以下命令 但我有的是数据帧,而不是文件。怎么才能实现?