我正在尝试读取存储在s3存储桶中的application.conf。我使用Bufferedsource从s3中读取内容,但是当我尝试使用ConfigFactory.parseString(source.mkString).getconfig("conf")
时,它找不到那里的'conf' 。以下是我的源代码:
import com.amazonaws.auth.DefaultAWSCredentialsProviderChain
import com.amazonaws.services.s3.model.S3Object
import com.amazonaws.services.s3.{AmazonS3Client,AmazonS3ClientBuilder,AmazonS3URI}
import scala.collection.JavaConversions._
import scala.io.{BufferedSource,Source}
object Test {
def main(args: Array[String]): Unit = {
import com.amazonaws.auth.BasicAWSCredentials
val credentials = new BasicAWSCredentials("key","secertkey")
// val credentialsProvider = new DefaultAWSCredentialsProviderChain()
val s3Client = new AmazonS3Client(credentials)
val uri: AmazonS3URI = new AmazonS3URI("s3://test-buck/conf/application.conf")
val s3Object: S3Object = s3Client.getObject(uri.getBucket,uri.getKey)
val source: BufferedSource = Source.fromInputStream(s3Object.getObjectContent)
try {
println(source.mkString)
import com.typesafe.config.{Config,ConfigFactory}
val rawConfig: Config = ConfigFactory.parseString(source.mkString)
val rootConfig = rawConfig.getconfig("conf")
println(rootConfig)
// println(rotConfig)
} finally {
source.close()
}
}
}
我的应用程序配置如下所示
conf {
source_data_list = ["OL","SB","1CP"]
//some other value
OL {
filename = "receipts_delta_GBR_14_10_2017.csv"
sftp_conf {
hostname = "endpoint"
port = "22"
username = "ubuntu"
pem = "pemfile"
filetype = "csv"
delimiter = "|"
directory = "/home/ubuntu/data"
}
}
}
不知道我在这里做错了什么。如果我使用资源并尝试通过ConfigFactory.load("application.conf").getconfig("conf")
加载,则应用程序配置相同。
关于此的任何线索都将有所帮助。
我遇到异常
线程“ main”中的异常线程“ main”中的异常com.typesafe.config.ConfigException $ Missing:找不到键“ conf”的配置设置 在com.typesafe.config.impl.SimpleConfig.findKey(SimpleConfig.java:124) 在com.typesafe.config.impl.SimpleConfig.find(SimpleConfig.java:145) 在com.typesafe.config.impl.SimpleConfig.find(SimpleConfig.java:159) 在com.typesafe.config.impl.SimpleConfig.find(SimpleConfig.java:164) 在com.typesafe.config.impl.SimpleConfig.getObject(SimpleConfig.java:218) 在com.typesafe.config.impl.SimpleConfig.getconfig(SimpleConfig.java:224) 在com.typesafe.config.impl.SimpleConfig.getconfig(SimpleConfig.java:33) 在com.dsm.utils.Test $ .main(Test.scala:26) 在com.dsm.utils.Test.main(Test.scala)