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

使用Boto3在S3中进行AWS内容类型设置

乌修筠
2023-03-14
问题内容

我正在尝试使用Amazon的Boto3 SDK for
Python将网页上传到S3存储桶。

我无法设定Content-TypeContent-Type除了我使用此代码指定的密钥外,AWS还在继续为它创建新的元数据密钥:

# Upload a new file
data = open('index.html', 'rb')
x = s3.Bucket('website.com').put_object(Key='index.html', Body=data)
x.put(Metadata={'Content-Type': 'text/html'})

任何有关如何设置Content-Type为的指导text/html将不胜感激。


问题答案:

Content-Type不是 定义 元数据,而是Metadata用于此的。它具有自己的属性,可以这样设置:

bucket.put_object(Key='index.html', Body=data, ContentType='text/html')

注意:.put_object()可以设定更多Content- Type。查看其余的Boto3文档。



 类似资料:
  • 我试图上传一个网页到S3桶使用亚马逊的Boto3 SDK为Python。 设置

  • boto3文档建议从命令行配置密钥。如果有的话,我可以把AWS键放入python源代码中吗?下面是供参考的代码。

  • 使用boto3,您可以从S3中的某个位置读取文件内容,给定一个bucket名称和密钥,如所示(这假设一个初步的) 这将返回一个字符串类型。我需要获取的特定文件恰好是一组类似字典的对象,每行一个。所以它不是JSON格式。我不想将其作为字符串读取,而是将其作为文件对象进行流式处理并逐行读取;除了先在本地下载该文件外,找不到其他方法来执行此操作 我想问的是,是否有可能在不必先在本地下载的情况下对文件进行

  • 我通过执行以下操作读取S3存储桶中的文件名 现在,我需要获取文件的实际内容,类似于打开(filename).readlines()。最好的方法是什么?

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

  • 问题内容: 因此,我在Struts2中使用freemarker模板来制定我的响应。但是,由于我也尝试使用taconite,因此需要使用“ text / xml”的内容类型发送响应。我似乎找不到使用freemarker指令设置内容类型的方法,而且我对Struts并不精通,无法知道是否有办法通过它来完成。 那么,我应该怎么做呢? 问题答案: 或者您可以在struts.xml中进行设置