gpt4 book ai didi

node.js - Meteor FS.Collection 访问服务器上的集合

转载 作者:太空宇宙 更新时间:2023-11-04 00:44:23 26 4
gpt4 key购买 nike

我正在使用 FS.Collection 在服务器上上传短视频文件,然后将其作为电子邮件附件发送。

插入到服务器上的集合可以工作,我可以访问客户端上的集合项目,还可以直接使用文件 Url 的路径进行流式传输 - localhost:3000/cfs/files/videos/{{item_id}}

我想知道如何访问服务器上的集合。我想发送一封带有以下格式附件的电子邮件,并且需要访问服务器上的文件路径和文件名。我尝试这样做:

Email.send({
to: to,
from: from,
subject: subject,
text: text,
attachments:[{fileName:"video.mp4", filePath:"/cfs/files/videos/{{item_id}}"}]
});

它在电子邮件中显示附件视频播放器,但带有错误消息,因此我认为我没有正确访问文件。

我的 Collection.js 很简单:

var videoStore = new FS.Store.GridFS("videos");

Videos = new FS.Collection("videos", {
stores: [videoStore]
});

最佳答案

您不能通过collectionFS的文件路径使用附件。 “/cfs/files/videos/{{item_id}}”是虚拟路径,即/cfs/files/videos中不存在文件,也不存在文件夹“/cfs/files/videos”。

您可以使用 http 路径代替:

var ROOT_URL = process.env.ROOT_URL;
var rootUrl;
if (ROOT_URL.indexOf('/', ROOT_URL.length - 1) != -1) {
rootUrl = ROOT_URL.substring(0, ROOT_URL.length - 1);
} else {
rootUrl = ROOT_URL;
}

var attachments = [];
attachment = {
fileName: fileName(url),
filePath: rootUrl + "/cfs/files/videos/{{item_id}}"
};
attachments.push(attachment);

Email.send({
to: to,
from: from,
subject: subject,
text: text,
attachments: attachments
});

关于node.js - Meteor FS.Collection 访问服务器上的集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35416628/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com