代码之家  ›  专栏  ›  技术社区  ›  Ramiro Tormenta

在S3 bucket中,如何正确配置json格式的文件以供下载或读取?

  •  1
  • Ramiro Tormenta  · 技术社区  · 7 年前

    我的问题是在我经历了两种不同的行为后提出来的 对象URL 来自存储在s3存储桶中的json文件。

    考虑JSON文件: 我的数据。json

    //s3-us-west-2。亚马逊。com/bucket/folder/mydata。json 。如果我在s3 bucket中创建特定配置,我也能够从不同的应用程序读取这些数据。

    另一方面,如果我使用 boto3 当我点击 对象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 ,以及via boto3 Content-Type: binary/octet-stream .我真的不知道元数据是否会影响 对象URL 行为

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

    除此之外,我找不到这两种方法(dashboard和boto3)在属性或权限方面的显著差异 Content-Type 在元数据中。然而,当我试图改变 内容类型 ,行为是一样的。

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

    1 回复  |  直到 7 年前
        1
  •  5
  •   jarmod    7 年前

    S3 bucket资源的 upload_file() 方法并不理想,因为它只是让您参考等效的方法 S3Transfer docs 如何使用额外的参数。

    尝试以下方法:

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