Javascript EISDIR-EISDIR:目录上的非法操作,读取

Javascript EISDIR-EISDIR:目录上的非法操作,读取,javascript,node.js,google-cloud-platform,Javascript,Node.js,Google Cloud Platform,当我尝试将一个图像上传到服务器端的一个bucket中时,我得到了上面的错误。我使用调试器检查了file参数是否包含文件路径而不是文件夹路径。代码如下: 函数上传文件(文件、目录){ 返回新承诺((解决、拒绝)=>{ 试一试{ const bucket=storage.bucket(bucket\u名称); const bucketFile=bucket.file(目录?`${directory}/${file.originalname}`:file.originalname); const bl

当我尝试将一个图像上传到服务器端的一个bucket中时,我得到了上面的错误。我使用调试器检查了file参数是否包含文件路径而不是文件夹路径。代码如下:

函数上传文件(文件、目录){
返回新承诺((解决、拒绝)=>{
试一试{
const bucket=storage.bucket(bucket\u名称);
const bucketFile=bucket.file(目录?`${directory}/${file.originalname}`:file.originalname);
const blobStream=bucketFile.createWriteStream();
blobStream.on('error',err=>{
const status=err.status | | 500;
console.log(错误、状态);
拒绝(错误);
});
blobStream.on('finish',async()=>{
//公共URL可用于通过HTTP直接访问文件。
等待bucketFile.makePublic();
常量publicUrl=`https://storage.googleapis.com/${bucket.name}/${bucketFile.name}`;
解析(publicUrl);
});
blobStream.end(file.buffer);
}捕捉(错误){
拒绝(错误);
}
});
}

你能帮我吗?

文件的路径是正确的。但是凭证的路径是错误的

使用
strace
运行它,查看哪个确切的系统调用导致了
EISDIR
,以及它的路径参数是什么——或者,如果得到堆栈跟踪,则直接在导致错误的
fs
调用中添加一些日志输出。然后根据你的发现,想想这是怎么回事——我不能不知道你首先发现了什么错误提示您到达的是一个目录而不是bucket中的文件,因此我会记录
目录
文件的值。originalname
要检查它们是否正确,您可以这样做并共享此信息吗?