Sto caricando file nel bucket Amazon S3. I file vengono caricati ma ottengo il seguente avviso.Come impostare il contenuto di InputStream Lunghezza
AVVISO: lunghezza del contenuto non specificata per i dati del flusso. Il contenuto dello streaming verrà memorizzato nella memoria e potrebbe causare errori di memoria insufficiente.
Così ho aggiunto la seguente riga al mio codice
metaData.setContentLength(IOUtils.toByteArray(input).length);
ma poi ho ottenuto il seguente messaggio. Non so nemmeno se sia un avvertimento o cosa.
I dati letti hanno una lunghezza diversa da quella prevista: dataLength = 0; expectedLength = 111992; includeSkipped = falso; in.getClass() = class sun.net.httpserver.FixedLengthInputStream; markedSupported = falso; contrassegnato = 0; resetSinceLastMarked = falso; markCount = 0; resetCount = 0
Come posso impostare contentLength sul metaData di InputSteam? Qualsiasi aiuto sarebbe molto apprezzato.
Si noti che se si sta caricando file di grandi dimensioni a s3 l'approccio di cui sopra prima caricare i dati in un array di byte. Ciò può causare un'eccezione di memoria insufficiente. – maxTrialfire
@maxTrialfire In tal caso, come impedirebbe a OOM di verificarsi quando si carica un file di grandi dimensioni? – user482594
@ user482594 In tal caso è necessario eseguire un caricamento chunked (multipart). – maxTrialfire