目前,我正在使用XMLOutputFactory
在本地目录上编写xml文件,该文件接受OutputStream
作为参数。但是现在我需要将xml文件写入AWS S3,而无需在本地编写。我没有本地目录访问权限。
但我没有得到“如何将xml文件写入AWS S3?”。
这是我在本地目录中编写xml的代码。
File file = new File(storeFilename);
DataOutputStream stream = null;
stream = new DataOutputStream(new FileOutputStream(file));
// Create new instance of XML straem writer
XMLOutputFactory inputFactory = XMLOutputFactory.newInstance();
try {
XMLStreamWriter writer = inputFactory.createXMLStreamWriter(
graphMLOutputStream, "UTF8");
writer.writeStartDocument();
writer.writeStartElement(GRAPHML);
writer.writeAttribute(XMLNS, GRAPHML_XMLNS);
}
我知道如何通过提供文件名或输入流作为参数,使用PutObjectRequest()
将文件放在AWS S3上。
// send request to S3 to create folder
PutObjectRequest putobjreq = new PutObjectRequest(
CAWSConstants.BUCKETNAME, file.getName(), file);
// put graphml file to aws
s3Client.putObject(putobjreq);
但我不知道如何使用xmlWriter将xml转换为inputstream。我可以发送到PutObjectRequest
。
请给我提示或参考。
答案 0 :(得分:0)
您应该能够使用FileOutputStream
而不是ByteArrayOutputStream
。然后参考How to upload a Java OutputStream to AWS S3。