AWS S3 не возвращает указанное количество записей - PullRequest
0 голосов
/ 28 октября 2019

Я читаю файл из корзины S3, указывая диапазон. Но это не дает мне определенную длину данных и всегда дает мне меньше данных. Это может быть связано с тем, что S3 игнорирует / пропускает несколько символов при чтении, но я не могу понять, почему.

  val stringBuilder = new StringBuilder

  val s3Client = AmazonS3ClientBuilder.standard.withRegion("us-east-1").withCredentials(new ProfileCredentialsProvider).build
  val rangeObjectRequest = new GetObjectRequest("test_bucket", "test_key")
    .withRange(0, 25738)

  val s3object = s3Client.getObject(rangeObjectRequest)

  System.out.println(s3object.getObjectMetadata.getContentType)
  System.out.println("content length: " + s3object.getObjectMetadata.getContentLength)

  val reader = new BufferedReader(new InputStreamReader(s3object.getObjectContent))
  var line = ""

  while ({line = reader.readLine; line != null}) {
    System.out.println(line + "  \nLength: " + line.length)
    stringBuilder.append(line).append("\n")
  }

**Output:
binary/octet-stream
content length: 25739
< 3/4 of line read from the file printed here.>
Length: 25341**

Как прочитать указанное количество байтов из файла? Если я читаю файл без указания диапазона, вся строка печатается без каких-либо проблем.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...