0

私の考えは、AWS ec2 マイクロインスタンスで実行されている Java サーブレットから 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 に答える