Aplakka scala s3连接器在尝试放置数据时挂起

yftpprvb  于 2022-11-06  发布在  Scala
关注(0)|答案(1)|浏览(214)

我正在尝试处理aws s3放入桶,用一个简单的字符串,我不能用alpakka(scala)做这个,但我可以用相同的请求处理使用aws java sdk
使用alpakka我的线程只是挂起不处理任何东西,Future.onComplete不触发
我尝试过指定aplakka conf文件,如下所示('*'标记覆盖敏感数据):

  1. alpakka.s3 {
  2. aws {
  3. credentials {
  4. provider = static
  5. access-key-id = "********"
  6. secret-access-key = "********"
  7. }
  8. region {
  9. provider = static
  10. default-region = "*****"
  11. }
  12. }
  13. }

我的计算机上确实有~/.aws/凭据正确,我可以连接到aws sdk和aws cli
据我所知,理想情况下,我可能根本不指定任何apakka.s3 creds,就像在awsjavasdk中一样
我已经检查了这篇文章https://discuss.lightbend.com/t/alpakka-s3-connection-issue/6551/2没有任何工作
我的例子是从docs中导出scala代码:

  1. val file: Source[ByteString, NotUsed] =
  2. Source.single(ByteString(body))
  3. val s3Sink: Sink[ByteString, Future[MultipartUploadResult]] =
  4. S3.multipartUpload(bucket, bucketKey)
  5. val result: Future[MultipartUploadResult] =
  6. file.runWith(s3Sink)

但实际上我还需要我的源代码是InputStream
endpoint-url = "http://localhost:9000"
PS:我真的不明白为什么我需要像这样指定一些主机:
endpoint-url = "http://localhost:9000"

iklwldmw

iklwldmw1#

如果您将alpakka.s3.aws留空,它将使用默认的AWS配置方法,如在CLI中一样(例如,您可以使用AWS_REGION环境变量设置区域和标准AWS凭据文件)。您也可以将alpakka.s3.aws.credentials留空以使用默认的AWS凭据方法并通过

  1. alpakka.s3 {
  2. aws {
  3. region {
  4. provider = static
  5. default-region = "us-east-1"
  6. }
  7. }
  8. }

endpoint-url仅适用于S3 API的替代(非AWS)实现(例如minio)。如果您正在设置它,您将无法连接到AWS S3。

相关问题