我正在编写一个微服务,该服务使用S3处理文件上传和短期存储。所需的端点之一应返回S3存储桶中文件的URL。一个不同的端点是文件上传本身,并将生成的fileId返回给用户。此ID是对象在S3中的键。
我尝试将s3client.getUrl与存储桶的名称和上述文件ID结合使用,这会产生错误:“已解决[org.springframework.web.HttpMediaTypeNotSupportedException:内容类型“不支持”]。当我在上传文件的方法中尝试相同的代码时,它返回一个URL(URL不能完全正常工作,但这可能是用户错误问题)。
@Override
public String getFileByURL(String fileId) {
try {
String fileUrl = s3Client.getUrl(s3Config.getBucketName(), fileId).toString();
return fileUrl;
} catch (AmazonS3Exception e) {
log.error("Could not get URL from S3 with " + fileId, e);
throw e;
} catch (Exception e) {
log.error("An unknown exception has occurred. " + fileId, e);
throw e;
}
}
预期结果:S3对象的URL。 实际结果: 2019-10-16 14:38:10.843 WARN 22576 --- [nio-8080-exec-5] .w.s.m.s.DefaultHandlerExceptionResolver:已解决[org.springframework.web.HttpMediaTypeNotSupportedException:内容类型''不支持] 2019-10-16 14:38:10.853警告22576 --- [nio-8080-exec-5] .w.s.m.s.DefaultHandlerExceptionResolver:已解决[org.springframework.web.HttpMediaTypeNotAcceptableException:找不到可接受的表示形式]