Как я могу получить ресурс в src / main / resources / upload-dir? - PullRequest
0 голосов
/ 26 мая 2020

Дерево моего проекта:

+---.mvn
|   \---wrapper
+---.settings
+---src
|   +---main
|   |   +---java
|   |   |   \---com
|   |   |       +---google
|   |   |       |   \---api
|   |   |       |       \---services
|   |   |       |           \---samples
|   |   |       |               \---youtube
|   |   |       |                   \---cmdline
|   |   |       |                       \---data
|   |   |       \---musicnet
|   |   |           \---springboot
|   |   |               +---basicauth
|   |   |               +---controller
|   |   |               +---exception
|   |   |               +---model
|   |   |               +---repository
|   |   |               \---service
|   |   \---resources
|   |       +---static
|   |       |   +---css
|   |       |   +---img
|   |       |   \---js
|   |       +---templates
|   |       \---upload-dir
|   \---test
|       \---java
|           \---com
|               \---musicnet
|                   \---springboot
\---target
    +---classes
    |   +---com
    |   |   +---google
    |   |   |   \---api
    |   |   |       \---services
    |   |   |           \---samples
    |   |   |               \---youtube
    |   |   |                   \---cmdline
    |   |   |                       \---data
    |   |   \---musicnet
    |   |       \---springboot
    |   |           +---basicauth
    |   |           +---controller
    |   |           +---exception
    |   |           +---model
    |   |           +---repository
    |   |           \---service
    |   +---META-INF
    |   |   \---maven
    |   |       \---com.musicnet
    |   |           \---musicnet
    |   +---static
    |   |   +---css
    |   |   \---js
    |   +---templates
    |   \---upload-dir
    \---test-classes
        \---com
            \---musicnet
                \---springboot

Я загружаю видео из каталога src / main / resources / upload-dir с помощью UploadVideo. java, который находится в com.google.api. services.samples.youtube.cmdline.data.

Src / main / resources настроен в пути к классам:

    <classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources">
        <attributes>
            <attribute name="maven.pomderived" value="true"/>
        </attributes>
    </classpathentry>

UploadVideo. java возвращает null в строке:

InputStreamContent mediaContent = new InputStreamContent(VIDEO_FILE_FORMAT, UploadVideo.class.getResourceAsStream("/" + SAMPLE_VIDEO_FILENAME));

Я читал и пробовал несколько способов ввести или настроить путь в getResourceAsStream к моему видео, но всегда возвращал null. Это работает только тогда, когда мой каталог загрузки находится в пакете com.google.api.services.samples.youtube.cmdline.data. Итак, могу ли я указать относительный путь от com.google.api.services.samples.youtube.cmdline.data до src / main / resources / upload-dir?

С уважением

Ответы [ 2 ]

0 голосов
/ 27 мая 2020

Сейчас я проверяю, что не синхронизируется, когда файл загружается на сервер файловой системы и создается appContext. Для уточнения c: - Сначала файл загружается из представления на сервер файловой системы. - Затем вызывается API YouTube, чтобы загрузить видео на YouTube. - Youtube api создает ресурс и загружает его на youtube. - Но при первой загрузке видео ресурс равен нулю. Если я перезапускаю проект из Eclipse (иногда мне приходится закрывать Eclipse и снова открывать) и пробую тот же процесс, ресурс в порядке, а затем видео загружается на Youtube.

Это похоже на сохранение видео в файловой системе сервер, но appContext не находит видео в файловой системе. Чтобы appContext нашел видео, необходимо перезапустить проект.

Я попытался исправить эту маркировку в Windows -> Настройки -> WorkSpace -> Refre sh, используя собственные хуки или объединение и Project - > Выполняется автоматическая сборка, но проблема остается.

0 голосов
/ 26 мая 2020

Вы можете легко загружать файлы из каталога ресурсов с помощью Spring.

Получить или создать контекст приложения:

appContext=new ClassPathXmlApplicationContext()

Затем получить требуемый ресурс:

res = appContext.getResource("classpath:upload-dir/targetvideo.mkv")

Затем вы можете получить входной поток из переменной res.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...