0
我的想法是从运行在AWS ec2 microinstance上的Java servlet上传int数组。据我了解,我必须首先将我的int数组转换为java对象文件,然后将文件上传到我的存储桶中,但是有没有办法在不首先创建本地文件的情况下“即时”执行此操作? 如果我必须首先创建一个本地文件,它将具有哪个路径名?将int数组从ec2 servlet发送到s3而不创建本地文件
我的想法是从运行在AWS ec2 microinstance上的Java servlet上传int数组。据我了解,我必须首先将我的int数组转换为java对象文件,然后将文件上传到我的存储桶中,但是有没有办法在不首先创建本地文件的情况下“即时”执行此操作? 如果我必须首先创建一个本地文件,它将具有哪个路径名?将int数组从ec2 servlet发送到s3而不创建本地文件
这将是这样的:
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设置的内存大,内存不足会打你。