Ich versuche, aus S3 und das Schreiben in InMemory Puffer zu lesen wie:lesen S3 Objekt und schreiben in InMemory Buffer
def inMemoryDownload(bucketName: String, key: String): String = {
val s3Object = s3client.getObject(new GetObjectRequest(bucketName, key))
val s3Stream = s3Object.getObjectContent()
val outputStream = new ByteArrayOutputStream()
val buffer = new Array[Byte](10* 1024)
var bytesRead:Int =s3Stream.read(buffer)
while (bytesRead > -1) {
info("writing.......")
outputStream.write(buffer)
info("reading.......")
bytesRead = ss3Stream.read(buffer)
}
val data = new String(outputStream.toByteArray)
outputStream.close()
s3Object.getObjectContent.close()
data
}
Aber es gibt mir Heap-Speicher-Fehler (Größe der Datei auf dem S3 ist 4MB)
Möglicherweise müssen Sie den Heapspeicher überprüfen. Es wird auch nicht empfohlen, 4-MB-Daten im Heap-Speicher zu haben. – notionquest
Meine JVM-Heap-Größe ist 1G. – developer