使用 Java 将 JSON 或 JSONObject 存储到 Amazon S3 中

Ihs*_*kal 6 java json amazon-s3 amazon-web-services

是否可以将 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"
                }
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

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

cel*_*epo 6

是的。

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


wwa*_*dge 5

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

在您的 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);
Run Code Online (Sandbox Code Playgroud)

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