0

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

4

1 回答 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 回答