我正在尝试创建一个rest api,它将s3(aws)中的路径作为变量路径,我遇到了一些问题。
GetMapping(value="files/{filePath}", produces="application/json")
如果我举例如路径:myFiles/uni/mymarks.txt
,它不会将其视为变量,而是将其视为完整路径,因此无法映射它。有关如何将其作为变量的任何建议? (斜杠创建此问题)。
如果我在filePath变量中有类似name.txt
的内容,它只保留名称并删除.txt
,因此当我想稍后在代码中使用它时,名称不正确。有任何调整吗?
答案 0 :(得分:0)
怎么样?
@RequestMapping(path = "/files/**", method = RequestMethod.GET)
public ResponseEntity<String> s3ProxyGet(HttpServletRequest request) {
String path = new UrlPathHelper().getPathWithinApplication(request);
...
然后:
curl http://localhost:8080/files/uni/mymarks.txt
将映射到此控制器方法,path
将包含/files/uni/mymarks.txt
。然后,您可以从前面修剪/files
并从s3执行提取。
UrlPathHelper
来自spring-web
库。
HTH