我目前正在开发一个Meteor React应用程序,该应用程序使用ostrio:files包将音频文件存储在名为Files的集合中。在另一个(常规mongo)集合中,我在转换函数中使用以下代码来" join"包含音频文件链接的文档:
transform: function(doc){
let curAudio = doc.audio;
let audioFile = Files.collection.findOne({_id: curAudio.file_id});
if(audioFile){
curAudio.audioLink = Files.link(audioFile);
curAudio.audioLength = audioFile.meta.length;
curAudio.audioSize = audioFile.size;
doc.audio = curAudio;
}
return doc;
}
这似乎工作得很好,因为产生的audio.audioLink就像
http://localhost:3000/cdn/storage/files/8Q7WwEXyJSkNWwFQa/original/8Q7WwEXyJSkNWwFQa.m4a
但是当我尝试做这样的事情时
<audio controls preload="none" style={{width: "480px"}}>
<source src={track.audioLink} type="audio/mp4"/>
<p>Your browser does not support HTML5 audio.</p>
</audio>
为了能够播放该文件,一切正常,直到我点击HTML5播放器的播放按钮。然后,chrome输出到控制台,服务器在应该加载文件时返回404。我测试了将链接放入地址栏,这里的服务器响应只是
File Not Found :(
有没有人知道如何解决这个问题?
答案 0 :(得分:0)
我找到了答案: 我的本地Ubuntu安装显然被配置为在/ tmp中存储上传的文件,在我重新启动系统或清除我的临时文件之前没有出现问题。让服务器重新创建数据库解决了问题。