我有一个使用S3存储桶的Spring启动应用程序。根据亚马逊(https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/java-dg-roles.html),订单应该是:
但是我的代码忽略了application.properties中的aws.accessKeyId和aws.secretKey。
public AmazonS3 getS3Client() {
AWSCredentialsProviderChain instanceProvider = new AWSCredentialsProviderChain();
AmazonS3ClientBuilder builder = AmazonS3ClientBuilder.standard();
builder.setCredentials(instanceProvider);
builder.setRegion(region);
return builder.build();
}
当我在EC2实例上使用它时,它可以工作,但是当我试图在本地使用它进行开发时,它就失败了。
更新:
也试过
DefaultAWSCredentialsProviderChain instanceProvider = new DefaultAWSCredentialsProviderChain();
System.out.println(instanceProvider.getCredentials().getAWSAccessKeyId());
System.out.println(instanceProvider.getCredentials().getAWSSecretKey());
return AmazonS3ClientBuilder.standard().withCredentials(instanceProvider).withRegion(region).build();
它也失败了。当我打印访问密钥时,它会显示正确的值和不同的秘密(我假设它是由于安全原因而加密的)。如果我使用Basic凭据,它就可以工作。
BasicAWSCredentials creds = new BasicAWSCredentials(keyName, secretKey);
return AmazonS3ClientBuilder.standard().withRegion(region)
.withCredentials(new AWSStaticCredentialsProvider(creds)).disableChunkedEncoding().build();
我不确定您发布的代码在EC2上是如何工作的,因为AWSCredentialsProviderChain需要一个提供者列表。
相反,你想要的是默认AWS凭据提供者链。
但是,您不应该需要显式的凭据提供程序(这可能是它工作的原因),因为<code>AmazonS3ClientBuilder。standard()创建一个具有所有默认设置的构建器(包括默认提供程序链)。
如果更改类不能解决您的问题,那么您需要编辑您的问题,以显示(1)您正在使用的命令行(编辑键),以及(2)从终端复制的确切的错误消息。
重写httpd.conf中的模块如下: 通往成功之路。htaccess: 所以在。htacess我有这个: 我希望尝试: 而不是: 它应该可以工作,因为它在生产环境中工作,而不是在本地主机上,我有wamp服务器apache,下面是一些配置: 在C:\wamp\bin\apache\apache2.4.9\conf\httpd.conf中: 这是不正确的,因为Anu说,所以我改变了在C:\wamp\
这是InsertDataTest.php文件:
我在我的windows机器上设置了Elk堆栈,其中包含以下内容: Elasticserach Logstash Kibana 我的logstash.conf 我的日志文件。日志(Apache日志) 当我运行logstash时。conf它在elasticsearch中创建以下索引: 上面的索引为空,无法从我的日志文件中获取任何数据。请帮忙?我对麋鹿很陌生。 当我使用以下方法查询索引logstash-
我想运行node。js作为子流程,并向其提供输入。使用C,下面是我的一些示例代码。 我遇到的问题是,尽管子进程的stdout仍然指向终端,但在向子进程stdin输入打印的“helloworld”行后,我什么也看不到。即使我对管道进行了fflush()操作,我也看不到任何输出。但是,如果关闭管道的输入,则“Hello World”将显示在终端上。 子流程似乎只是缓冲-为什么?我希望最终将子流程std
问题内容: 我是Java的新手,所以如果这是一个很小的错误,请原谅我,这是 我的代码: 当我在编译后运行它时,第18行(n = System.in.read())被跳过。 我得到的输出是这样的: 对(1-5)投票: 1输入0退出,再次输入1投票: 对(1-5)投票: 2输入0退出,再次输入1投票: 对(1)投票-5): ^ C 的值not 会使程序成为无限循环。 谢谢您的帮助。 问题答案: 我认为
我想编译我的程序,我在VS代码,但我不能,因为据称 javac不能被识别为内部或外部命令、可操作程序或批处理文件。 做了一些搜索,我觉得好像它应该工作: 通过所有必要的扩展,我设置了java。在VS代码中的用户设置中返回主页,以覆盖环境变量: “java.home”:“C:\\Program Files\\java\\jdk1.8.0_181\\bin” 这一个不起作用,但我也在没有“\\bin”