我有使用spring-boot的web应用程序,试图在tomcat服务器中运行的AWS S3中获取对象的元数据。我的存储区域为ap-southeast-1
。当我在Elastic Beanstalk中部署我的应用程序时,它运行良好。但是,在几个小时内(通常是在晚上)没有任何要求的情况下运行后,我得到了AmazonS3Exception: Bad Request
。重新启动tomcat后,我的应用程序将再次运行。
这是我在application.properties文件中放入的内容
cloud.aws.credentials.accessKey=[my-access-key]
cloud.aws.credentials.secretKey=[my-secret-key]
cloud.aws.region.static=ap-southeast-1
bucket.name=[my-bucket-name]
这就是我调用getObjectMetadata
的方式public static ObjectMetadata getMeta(final String fileName) throws IOException {
String key = prefix + "/" + fileName;
ObjectMetadata meta = s3client.getObjectMetadata(bucketName, key);
return meta;
}
我该怎么做才能解决这个问题?
更新:
以下是我设置凭据的方式:
private static AWSCredentialsProvider provider = new DefaultAWSCredentialsProviderChain();
private static AmazonS3 s3client = new AmazonS3Client(provider.getCredentials());