Meteor.js上传生产文件夹

Ans*_*was 5 node.js meteor

因此,我们在应用程序中构建了一个文件上传器,用于处理本地环境.我们将文件上传到公共/上传,我们可以使用以下方式读取文件:

http://localhost:3000/upload/filename.extension
Run Code Online (Sandbox Code Playgroud)

现在,当我们将代码移至生产时,我们使用检查:

getUploadPath = function () {
    var fs = Npm.require('fs');
    var path = Npm.require('path');
    var devPath = path.join(process.cwd(),"../../../../../public");
    var prodPath = path.join(process.cwd(),"../client/app/");
    if (fs.existsSync(devPath)) {
        return path.join(devPath,"upload");
    } 
    else {
        return path.join(prodPath,"upload");
    }
}
Run Code Online (Sandbox Code Playgroud)

现在,这会将文件保存到{prod_path}/programs/client/app/upload.但是,我无法在应用程序中使用该文件.令人惊讶的是,本地的所有文件似乎也存在于同一个上传文件夹中,并且可由应用程序访问.我错过了什么?

小智 0

如果此应用程序运行在带有 Nginx 或 Apache 的服务器上,您可以设置 /upload 位置,这样文件将直接提供,无需 Meteor。

在 Nginx 上我使用这样的东西:

location /upload/ {
    root /home/app-name/bundle/programs/web.browser/app;
}
Run Code Online (Sandbox Code Playgroud)