使用S3路径为事务创建获取休息请求

时间:2018-06-02 20:34:34

标签: java spring rest amazon-s3

我正在尝试创建一个rest api,它将s3(aws)中的路径作为变量路径,我遇到了一些问题。

  1. GetMapping(value="files/{filePath}", produces="application/json") 如果我举例如路径:myFiles/uni/mymarks.txt,它不会将其视为变量,而是将其视为完整路径,因此无法映射它。有关如何将其作为变量的任何建议? (斜杠创建此问题)。

  2. 如果我在filePath变量中有类似name.txt的内容,它只保留名称并删除.txt,因此当我想稍后在代码中使用它时,名称不正确。有任何调整吗?

1 个答案:

答案 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