我的项目的树是:
+---.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的相对路径吗?
问候
您可以使用Spring轻松地从资源目录中加载文件。
获取或创建应用上下文:
appContext=new ClassPathXmlApplicationContext()
然后获取所需的资源:
res = appContext.getResource("classpath:upload-dir/targetvideo.mkv")
然后您可以从res变量获取输入流。
现在,我正在检查文件上传到文件系统服务器并创建appContext时似乎不同步。为了更具体:-首先,将文件从视图上传到文件系统服务器。-然后调用youtube api以便将视频上传到youtube。-Youtube api创建资源并将其上传到youtube。-但是第一次上传视频时,资源为空。如果我从Eclipse停止项目并尝试相同的过程,则该资源正常,然后将视频上传到Youtube。
就像视频保存在文件系统服务器上,但appContext在文件系统上找不到视频。需要重新启动项目才能使appContext找到视频。