我遇到了一个问题,我无法弄清楚到底是什么问题。我曾尝试检查类似问题,但找不到任何问题。我尝试使用功能将图像上传到Firebase存储。例如,客户端从其本地PC上传图像,然后由Firebase功能对其进行处理。之所以有效,是因为我可以看到在Firebase存储器上上传的图像。
问题是,每当我尝试在浏览器中打开公共URL时,它都不会打开。我还尝试从Firebase存储控制台打开图像,即使该图像无法预览也无法打开。它会永远保持加载状态。
PS:使用Firebase存储sdk时一切正常,但不能正常运行,因此我不认为这是SO this
所说的区域性问题Firebase功能代码
api.post('/v1/event/image/upload', async (req, res) => {
const response = {};
var form = new formidable.IncomingForm();
form.maxFileSize = 200 * 1024 * 1024;
form.multiples = true;
return new Promise((resolve, reject) => {
form.parse(req, (err, fields, files) => {
//console.log(err, fields, files);
var file = files.file;
if (err) {
response.status = 300;
response.message = 'Error: ' + err.message;
response.data = [];
return res.status(300).json(response);
}
var filePath = file.path;//path.join(file.path, file.name);//file.path;
console.log('File path: ' + filePath, file);
let fileName = new Date().getTime();
var bucket = admin.storage().bucket('{bucket-url}');
return bucket.upload(filePath, {
destination: 'media/eventz/' + fileName,
metadata: {
contentType: file.type,
metadata: {
custom: 'metadata'
}
}
}).then((photo) => {
var config = [];
var configObj = {
key: fileName,
caption: fileName,
size: file.size,
url: photo[0].metadata.mediaLink //downloadUrl: // the url to download the file
};
config.push(configObj);
var preview = [];
preview.push(photo[0].metadata.mediaLink);
//response.status = 200;
//response.message = currentTimestamp;
response.initialPreview = preview;
response.initialPreviewConfig = config;
response.initialPreviewThumbTags = [];
response.initialPreviewAsData = true;
return res.status(200).json(response);
}).catch((err) => {
response.status = 500;
response.message = 'Error: ' + err.message;
response.data = [];
return res.status(500).json(response);
});
});
}).then(() => {
response.status = 200;
response.message = 'Image was not uploaded, please try again';
response.data = [];
return res.status(200).json(response);
}).catch(err => {
response.status = 500;
response.message = 'Error: ' + err.message;
response.data = [];
return res.status(500).json(response);
});
});