AmazonS3Client.putObject с файлом сохраняет открытую ссылку на файл - PullRequest
0 голосов
/ 20 февраля 2019

Мы работаем с AWS SDK S3 версии 2.4.2 для Java.Когда мы пытаемся поместить объект (s3.putObject (PutObjectRequest.builder (). Bucket (bucket) .key (key) .build (), Paths.get (file));) для нескольких файлов с одним подключением, этоошибка «Слишком много открытых файлов» после загрузки нескольких тысяч файлов.Когда мы проверили на машине Unix команду «pfiles» с идентификатором процесса, она никогда не закрывает ссылку на файлы, пока приложение не будет завершено / уничтожено.

1 Ответ

0 голосов
/ 20 февраля 2019

Наконец, мы закончили с использованием потока ввода файла с байтовым массивом и закрыли вручную из нашей программы:

FileInputStream fis = new FileInputStream(file);
byte[] data = IoUtils.toByteArray(fis);
s3.putObject(PutObjectRequest.builder().bucket(bucket).key(key).build(), RequestBody.fromBytes(data));
data = null; 
fis.close();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...