如何获得src / main / resources / upload-dir中的资源?

问题描述 投票:0回答:2

我的项目的树是:

+---.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

我正在通过com.google.api.services.samples.youtube.cmdline.data中的UploadVideo.java上传src / main / resources / upload-dir下的视频。

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的相对路径吗?

问候

java spring youtube-api youtube-data-api
2个回答
0
投票

您可以使用Spring轻松地从资源目录中加载文件。

获取或创建应用上下文:

appContext=new ClassPathXmlApplicationContext()

然后获取所需的资源:

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

然后您可以从res变量获取输入流。


0
投票

现在,我正在检查文件上传到文件系统服务器并创建appContext时似乎不同步。为了更具体:-首先,将文件从视图上传到文件系统服务器。-然后调用youtube api以便将视频上传到youtube。-Youtube api创建资源并将其上传到youtube。-但是第一次上传视频时,资源为空。如果我从Eclipse停止项目并尝试相同的过程,则该资源正常,然后将视频上传到Youtube。

就像视频保存在文件系统服务器上,但appContext在文件系统上找不到视频。需要重新启动项目才能使appContext找到视频。

© www.soinside.com 2019 - 2024. All rights reserved.