Создание запроса на получение отдыха с путем S3 для транзакций

Я пытаюсь создать rest api, который принимает в качестве переменного пути путь от s3 (aws), и у меня есть некоторые проблемы.

  1. GetMapping(value = "files/{filePath}", produces = "application/json") Если я укажу, например, путь: myFiles/uni/mymarks.txt, он будет рассматривать его не как переменную, а как полный путь, поэтому он не может его сопоставить. Какие-либо рекомендации о том, как я могу указать это как переменную? (косая черта создает эту проблему).

  2. Если у меня есть в переменной filePath что-то вроде name.txt, она сохраняет только имя и удаляет .txt, поэтому имя неверно, когда я хочу использовать его позже в коде. Какие-нибудь корректировки?

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
0
74
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Как насчет?

@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

Отлично. Рад, что смог помочь. В свою очередь, если решение работает, можете ли вы принять его в качестве ответа или проголосовать за него?

Paul Warren 06.06.2018 02:05

Другие вопросы по теме