2012-06-11 13 views
0

我的想法是从运行在AWS ec2 microinstance上的Java servlet上传int数组。据我了解,我必须首先将我的int数组转换为java对象文件,然后将文件上传到我的存储桶中,但是有没有办法在不首先创建本地文件的情况下“即时”执行此操作? 如果我必须首先创建一个本地文件,它将具有哪个路径名?将int数组从ec2 servlet发送到s3而不创建本地文件

回答

0

这将是这样的:

public void arrayToS3(String bucket, String pathInS3, JSONArray array) { 
    ObjectMetadata metadata = new ObjectMetadata(); 
    byte[] dataInMemory = array.toString().getBytes(); 
    s3client.putObject(bucket, pathInS3, new ByteArrayInputStream(dataInMemory), metadata); 
} 

只是转换成任何东西IntputStream。例如,方法arrayToS3将JSONArray转换为String,并将String转换为byte []。最后,将byte []包装到InputStream。

一切都在记忆中。如果你的数据不是很大,这是一个简单的方法。如果你的数据比JVM设置的内存大,内存不足会打你。

相关问题