我的想法是从运行在 AWS ec2 微实例上的 Java servlet 上传一个 int 数组。据我了解,我必须先将我的 int 数组转换为 java 对象文件,然后将文件上传到我的存储桶中,但是有没有办法在不先创建本地文件的情况下“即时”执行此操作?如果我必须先创建一个本地文件,它会有哪个路径名?
问问题
142 次
1 回答
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 设置的内存大,内存不足会打击你。
于 2012-06-30T00:23:36.173 回答