在 Meteor 部署环境中获取 Meteor 私有文件夹路径

Getting Meteor private folder path in Meteor Deploy Environment

我需要获取私人文件夹中文件的路径。 在我的本地机器上,我可以使用路径 "../../../../../" 获取它,但是,当我使用 meteor deploy 部署到 meteor 服务器时,它不再起作用了。我还尝试使用 process.cwd() 记录当前目录并得到以下内容,这与我在本地机器上得到的结构不同:

/meteor/containers/3906c248-566e-61b7-4637-6fb724a33c16/bundle/programs/server

从我的本地机器记录的目录给出:

/Users/machineName/Documents/projectName/.meteor/local/build/programs/server

注意:我正在使用此路径设置 https://www.npmjs.com/package/apn

您可以使用assets/app/作为相对路径。虽然乍一看这可能没有意义,但 Meteor 会重新安排您的 /private 目录以从 /programs/server 目录映射到 assets/app。这在开发和生产中都是如此。

基本上假设 private/ 映射到 assets/app/

对私有文件夹中的一项资产调用 Assets.absoluteFilePath(assetPath),然后从返回的字符串中截取资产文件的名称,例如,假设您有一个名为 test.txt 在私人文件夹中:

var aFile = 'test.txt';// test.txt is in private folder
var aFilePath = Assets.absoluteFilePath(aFile);
var aFolder =  aFilePath.substr(0, aFilePath.length - aFile.length);
console.log(aFolder);

https://docs.meteor.com/api/assets.html#Assets-absoluteFilePath