【问题标题】:Storing JSON into Amazon S3 with Java使用 Java 将 JSON 存储到 Amazon S3
【发布时间】:2017-04-22 05:20:50
【问题描述】:

是否可以将 JSON 数据存储到 Amazon S3 中?假设我想存储这个 JSON 数据:

{
    "glossary": {
        "title": "example glossary",
        "GlossDiv": {
            "title": "S",
            "GlossList": {
                "GlossEntry": {
                    "ID": "SGML",
                    "SortAs": "SGML",
                    "GlossTerm": "Standard Generalized Markup Language",
                    "Acronym": "SGML",
                    "Abbrev": "ISO 8879:1986",
                    "GlossDef": {
                        "para": "A meta-markup language, used to create markup languages such as DocBook.",
                        "GlossSeeAlso": ["GML", "XML"]
                    },
                    "GlossSee": "markup"
                }
            }
        }
    }
}

我检查了here 说这是可能的,但是它使用的是 jQuery,但我在 Java 中找不到相应的东西。即使有可能,JSON 将以什么形式存储?会被转储到文件中吗?

【问题讨论】:

    标签: java json amazon-web-services amazon-s3


    【解决方案1】:

    是的。

    只需使用 putObject(String bucketName, String key, String content),将您的 JSON 字符串传递给 content

    【讨论】:

    • 如果我们用相同的键和不同的内容再次调用 putObject 方法,那么它将覆盖旧的 json 字符串/内容对吗?
    • Yes
    【解决方案2】:

    是的,您在这里几乎处理的是字节,因此这些字节表示的任何格式都没有任何影响。

    在您的 java 应用程序中,将您拥有的任何对象转换为字节,然后直接将其输出(或先写入文件,然后上传)。示例代码:

     ObjectMapper objectMapper = new ObjectMapper(); 
     byte[] bytesToWrite = objectMapper.writeValueAsBytes(yourObject)
    
     ObjectMetadata omd = new ObjectMetadata();
     omd.setContentLength(bytesToWrite.length);
     transferManager.upload(bucketName, filename, new ByteArrayInputStream(bytesToWrite), omd);
    

    java客户端可以在这里找到:https://aws.amazon.com/sdk-for-java/

    【讨论】:

      猜你喜欢
      • 2018-08-23
      • 1970-01-01
      • 2017-11-10
      • 1970-01-01
      • 1970-01-01
      • 2015-02-24
      • 1970-01-01
      • 2023-02-04
      • 1970-01-01
      相关资源
      最近更新 更多