Коннектор Aplakka scala s3 зависает при попытке поставить данные

Я пытаюсь обработать aws s3, помещенный в корзину, с помощью простой строки, я не смог сделать это с помощью alpakka (scala), но я могу обработать тот же запрос, используя aws java sdk

Используя alpakka, мой поток просто зависает, ничего не обрабатывая, Future.onComplete не запускается
Я пытался указать файл конфигурации аплакки следующим образом (метки «*» охватывают конфиденциальные данные):

alpakka.s3 {
  aws {
    credentials {
      provider = static
      access-key-id = "********"
      secret-access-key = "********"
    }
    region {
      provider = static
      default-region = "*****"
    }
  }
}

У меня есть ~/.aws/credentials на моей машине правильно, я могу подключиться как к aws sdk, так и к aws cli
Как я понимаю, в идеале я могу вообще не указывать никаких кредитов apakka.s3, как в aws java sdk
> Я уже ознакомился с этой статьей https://discuss.lightbend.com/t/alpakka-s3-connection-issue/6551/2 ничего не помогло

Мой пример — это scala-код для StrenghForward из документации:

val file: Source[ByteString, NotUsed] =
  Source.single(ByteString(body))

val s3Sink: Sink[ByteString, Future[MultipartUploadResult]] =
  S3.multipartUpload(bucket, bucketKey)

val result: Future[MultipartUploadResult] =
  file.runWith(s3Sink)

но на самом деле мне также нужно, чтобы мой источник был InputStream

val source: Source[ByteString, Future[IOResult]] = StreamConverters.fromInputStream(() => is, 4096)

PS: на самом деле я не понимаю, зачем мне нужно указывать какой-то хост вот так:
endpoint-url = "http://localhost:9000"


person yevhensh    schedule 19.09.2020    source источник
comment
Вы также можете взглянуть на Benji S3 (я являюсь участником)   -  person cchantep    schedule 19.09.2020


Ответы (1)


Если вы оставите alpakka.s3.aws пустым, будут использоваться методы настройки AWS по умолчанию, такие как в CLI (например, вы можете использовать переменную среды AWS_REGION для установки региона и стандартного файла учетных данных AWS). Вы также можете оставить alpakka.s3.aws.credentials пустым, чтобы использовать методы учетных данных AWS по умолчанию и установить регион AWS через

alpakka.s3 {
  aws {
    region {
      provider = static
      default-region = "us-east-1"
    }
  }
}

endpoint-url предназначен только для использования с альтернативными (не AWS) реализациями S3 API (например, minio). Если вы установите его, вы не сможете подключиться к AWS S3.

person Levi Ramsey    schedule 20.09.2020
comment
так что да, когда я оставил все пустым, ничего не работает, но с cli/sdk сделать - person yevhensh; 21.09.2020