【发布时间】:2021-01-06 02:00:33
【问题描述】:
我正在尝试使用简单的字符串处理放入存储桶中的 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/credentials 正确,我可以同时连接 aws sdk 和 aws cli
据我了解,我可能根本不指定任何 apakka.s3 凭据,例如在 aws java sdk
我已经查看了这篇文章 https://discuss.lightbend.com/t/alpakka-s3-connection-issue/6551/2 没有任何效果
我的示例是来自文档的 strainghforward 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)
但实际上我还需要我的源是 InputStream
val source: Source[ByteString, Future[IOResult]] = StreamConverters.fromInputStream(() => is, 4096)
PS:我实际上不明白为什么我需要像这样指定一些主机:endpoint-url = "http://localhost:9000"
【问题讨论】:
-
你也可以看看Benji S3(我是贡献者)
标签: scala amazon-s3 akka alpakka