在S3存储桶中,如何正确配置json格式的文件以进行下载或读取?

拉米罗风暴

当我在存储在s3存储桶中的json文件的对象URL中遇到两种不同的行为时,我的问题就出现了

考虑一个json文件:mydata.json

如果我从AWS网站使用s3仪表板上传此文件,则可以在浏览器中查看数据://s3-us-west-2.amazonaws.com/bucket/folder/mydata.json如果我在s3存储桶中创建特定的配置,我也可以从其他应用程序读取此数据。

另一方面,如果我将boto3库用于python并在同一存储桶中上传相同的文件(在此过程中将文件公开),则当我单击对象URL时,它将下载文件,但不会在浏览器中打开数据。

这是我使用的代码:

# upload json file
bucket.upload_file(path, jsonkey)
object_acl = s3.ObjectAcl('bucket_name', jsonkey)
bucket_response = object_acl.put(ACL='public-read')

我探索了文件属性,例如元数据。通过仪表板上传文件时,分配的元数据为Content-Type: application/json,通过boto3Content-Type: binary/octet-stream我真的不知道元数据是否会影响对象的URL行为。

在这种情况下,如何正确配置json格式的文件以进行下载或读取?我的意思是,影响对象URL行为的主要配置是什么?

除了Content-Type元数据,我在属性或权限上都找不到这两种方法(仪表板和boto3)之间的显着差异但是,当我尝试更改时Content-Type,行为是相同的。

我可以提供任何其他信息来澄清这个问题,请随意提问。提前致谢。

贾莫德

S3存储桶资源的upload_file()方法的文档并不理想,因为它只是向您介绍了等效的S3Transfer文档,以了解如何使用额外的参数。

请尝试以下操作:

bucket.upload_file(path, jsonkey, ExtraArgs={'ContentType': "application/json"})

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Python:如何从 S3 存储桶下载文件

从 s3 存储桶读取 json 文件

从多个文件夹的s3存储桶中仅读取特定的json文件

如何在Django中从S3存储桶下载媒体文件

如何使用python从S3存储桶中读取.txt文件并查看内容?

如何将图像文件从S3存储桶直接读取到内存中?

Presto:如何从s3中读取在子文件夹中分区的整个存储桶?

如何从AWS Lambda的s3存储桶中读取csv文件?

如何从 S3 存储桶中读取最后修改的 csv 文件?

如何使用pyspark从s3存储桶中读取csv文件

如何从Elastic Beanstalk实例访问S3存储桶中的docker配置文件

使用boto3和python从S3存储桶目录中仅读取特定格式的文件

将JSON写入S3存储桶中的文件

AWS Lambda:如何在S3存储桶中读取CSV文件,然后将其上传到另一个S3存储桶?

如何遍历S3存储桶中的文件?

如何加载S3存储桶中的zip文件?

如何从S3存储桶中复制文件

允许在 S3 存储桶中公开读取与允许下载存储桶的内容相同吗?

如何使用python不管文件密钥如何从S3存储桶下载所有文件

Javascript从亚马逊S3存储桶下载文件?

无法从S3存储桶下载文件

如何正确设置IAM执行角色和存储桶策略,以使Lambda写入公共读取S3存储桶?

如何根据文件修改日期从s3存储桶下载文件?

使用 boto3 从 AWS S3 存储桶下载 - 时间戳格式不正确

在 Laravel 中压缩和下载 Amazon S3 存储桶文件和文件夹

如何将多个文件直接下载、解压和传输到 s3 存储桶中?

如何使用未经身份验证的用户从Swift中的AWS S3存储桶下载文件

如何从RDS Mysql存储过程写入/读取S3存储桶文件

从PySpark中的S3存储桶读取数百万个小型JSON文件非常慢