【发布时间】:2018-05-30 02:27:56
【问题描述】:
ENOENT - 但我的文件只是在同一个目录中...... 大家好,我尝试使用 API 向我的 Google Drive 发送一个名为birds.mp3 的文件。该文件必须由要发送的函数访问。
尽管我尝试发送的文件与相关代码位于同一文件夹中,但我的控制台返回了我:
events.js:183
投掷者; // 未处理的“错误”事件
^
错误:ENOENT:没有这样的文件或目录,打开'./birds.mp3'
这是我的树:
-- folder
|-- birds.mp3
|-- quickstart.js
这里是我的 quickstart.js
module.exports.insertDrive = function (req) {
console.log("callback reached.")
var url = req.body.url;
var folderId = 'id';
var fileMetadata = {
'name': req.body.word,
parents: "id"
};
var media = {
mimeType: 'audio/*',
body: fs.createReadStream("./birds.mp3") // PATH FUNCTION HERE
};
drive.files.create({
resource: fileMetadata,
media: media,
fields: 'id'
}, function (err, file) {
if (err) {
// Handle error
console.error(err);
} else {
console.log('File Id: ', file.id);
}
})};
我不知道为什么我的文件无法访问。我尝试了一些技巧,例如 path.resolve 等等,我尝试将我的birds.mp3 推送到多个文件夹中(如果有的话),但都失败了。
谢谢。
【问题讨论】:
-
read a file using the file-system package 可能重复您调用的是
node folder/quickstart.js而不是node quickstart.js,请结合使用path.join和__dirname -
来自
fileMetadata,我认为您使用的是Drive API v3。如果我的理解是正确的,当前的错误被删除后,文件无法上传到"id"的文件夹中。所以请将parents: "id"修改为parents: ["id"]。 developers.google.com/drive/api/v3/reference/files/create
标签: javascript node.js api path google-drive-api