我正在尝试处理aws s3放入桶,用一个简单的字符串,我不能用alpakka(scala)做这个,但我可以用相同的请求处理使用aws java sdk
使用alpakka我的线程只是挂起不处理任何东西,Future.onComplete不触发
我尝试过指定aplakka conf文件,如下所示('*'标记覆盖敏感数据):
alpakka.s3 {
aws {
credentials {
provider = static
access-key-id = "********"
secret-access-key = "********"
}
region {
provider = static
default-region = "*****"
}
}
}
我的计算机上确实有~/.aws/凭据正确,我可以连接到aws sdk和aws cli
据我所知,理想情况下,我可能根本不指定任何apakka.s3 creds,就像在awsjavasdk中一样
我已经检查了这篇文章https://discuss.lightbend.com/t/alpakka-s3-connection-issue/6551/2没有任何工作
我的例子是从docs中导出scala代码:
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)
但实际上我还需要我的源代码是InputStreamendpoint-url = "http://localhost:9000"
PS:我真的不明白为什么我需要像这样指定一些主机:endpoint-url = "http://localhost:9000"
个
1条答案
按热度按时间iklwldmw1#
如果您将
alpakka.s3.aws
留空,它将使用默认的AWS配置方法,如在CLI中一样(例如,您可以使用AWS_REGION
环境变量设置区域和标准AWS凭据文件)。您也可以将alpakka.s3.aws.credentials
留空以使用默认的AWS凭据方法并通过endpoint-url
仅适用于S3 API的替代(非AWS)实现(例如minio)。如果您正在设置它,您将无法连接到AWS S3。