我正在尝试从Firebase存储中获取一个ID JPEG,并将其上传到Stripe,以便允许我的客户验证他们的身份。然而,我遇到了一些错误,导致函数停止。
import * as https from 'https'
import * as fs from 'fs'
const stripe = Stripe('sk_test');
function getidFile(url: string):Promise<any>{
return new Promise((resolve,reject) => {
const file = fs.createWriteStream("test.jpg");
https.get(
url,
function(response: IncomingMessage){
console.log('Response ', response);
response.pipe(file);
file.on('finish', function() {
file.close();
resolve(file);
});
}
).on('error', function(err) { // Handle errors
reject(err);
});
});
}
function uploadFileToStripe(fileUrl:string,fileType:string,fileName:string):Promise<any>{
return getidFile(
fileUrl
).then(
(data:any) => {
console.log('File as blob ', data);
const upload: Promise<any> =
stripe.files.create(
{
file: {
data: data,
name: fileName,
type: 'image/jpeg',
},
purpose: 'identity_document',
}
);
return upload.then(
(document: any) => {
console.log('Document upload ', document);
return document;
}
).catch(
(_error: any) => {
console.log('Error uploading document ', _error);
return _error;
}
)
}
).catch(
(_error:any) => {
console.log('Error with response ', _error);
return _error;
}
);
}
错误:EROFS:只读文件系统,打开“test.jpg”,然后我的函数停止。
getidFile
函数中收到错误信息的? - Paul Asjes修改文件而不是替换它可能需要一个标志模式r+,而不是默认模式w。
如果您在这里fs.createWriteStream("test.jpg");
遇到错误,这可能是问题的根源。 - bhito