我正在尝试将从angular frontend接收的base64映像保存到firebase存储目录中。但由于某些原因,保存在firebase文件夹中的图像未生成预览。此外,在尝试检索图像文件时,我无法获取该文件的签名URL。
我正在使用Firebase admin-sdk生成桶引用-'storageRef'。
节点后端接收到的图像数据似乎很好,我使用在线base64解码器测试了相同的数据,并正确地重新生成原始图像。有人能告诉我这里出了什么问题吗?
exports.createContent = async(req, res, next) => {
// Add a new document with a generated id.
const writer = await db.collection('feeds').doc(req.body.language).collection(req.body.type).add({
author: req.body.author,
cat: req.body.cat,
content: req.body.content,
createdAt: admin.firestore.Timestamp.fromDate(new Date(req.body.createdAt)),
excerpt: req.body.excerpt,
lastEdit: admin.firestore.Timestamp.fromDate(new Date(req.body.lastEdit)),
media: req.body.media,
os_android: req.body.os_android === 'true' ? true : false,
os_ios: req.body.os_ios === 'true' ? true : false,
region: req.body.region,
status: req.body.status,
title: req.body.title,
type: req.body.type
}).then((docRef) => {
let bufferStream = new stream.PassThrough();
base64EncodedImageString = req.body.imageSrc.replace(/^data:image\/\w+;base64,/, '');
bufferStream.end(Buffer.from(base64EncodedImageString, 'base64'));
var file = storageRef.file('thumbnail/' + req.body.type + '/' + docRef.id + '.png');
//Pipe the 'bufferStream' into a 'file.createWriteStream' method.
bufferStream.pipe(file.createWriteStream({
metadata: {
contentType: 'image/png',
metadata: {
custom: 'metadata'
}
},
public: true,
validation: "md5"
}))
.on('error', function(err) {
console.log(err);
})
.on('finish', function() {
res.json({
message: "Feeds Added Successfully",
feeds: docRef.id
});
});
})
};
问题是,我在NodeJS中使用Firebase管理员SDK,我试图在代码中公开该文件,违反存储桶的访问规则。因此,我将公共访问密钥转换为false,并在上传时为该文件生成访问令牌。我在下面包含了我的工作代码。
var stream = require('stream');
const uuidv4 = require('uuid/v4');
const uuid = uuidv4();
let bufferStream = new stream.PassThrough();
var base64EncodedImageString = req.body.imageSrc.replace(/^data:image\/\w+;base64,/, '');
bufferStream.end(new Buffer.from(base64EncodedImageString, 'base64'));
var file = storageRef.file('thumbnail/' + req.body.type + '/' + docRef.id + '.png');
//Pipe the 'bufferStream' into a 'file.createWriteStream' method.
bufferStream.pipe(file.createWriteStream({
metadata: {
contentType: 'image/png',
metadata :{
firebaseStorageDownloadTokens: uuid
}
},
public: false,
validation: 'md5'
}))
.on('error', function(err) {
console.log(err);
})
.on('finish', function() {
res.json({
message: "Feeds Added Successfully",
feeds: docRef.id
});
});
我无法上载firebase存储上的配置文件图像。我正在把烤面包片上的错误打印出来。为什么会出现这种情况?我无法解决这个问题,我审查了我的代码很多次。问题可能是什么?我如何调整我的代码以使其正常工作?提前向大家表示感谢。
问题内容: 当我尝试删除目录时,FirebaseStorage始终返回错误,即类似以下内容始终返回错误。 但是,删除文件可以正常工作,例如不会返回错误: 我在这里可能做错了什么?我不认为FirebaseStorage不支持它,因为从目录中一个接一个地删除文件会很la脚(特别是如果所述目录有100或1000个这样的目录)。 问题答案: 从Google网上论坛删除目录是不可能的。您必须在某个位置(在F
我正在尝试将容器的背景图像设置为来自资产的图像,如下所示: 但这将需要一些时间来加载和返回空白,同时屏幕直到图像加载。. 因此,我尝试在构建之前预加载图像,如下所示: 这返回了这个错误:
我正在制作这个应用程序,用户可以有一张个人资料图片(但只有一张图片每人)。我得到了所有的设置,但当图片是2MB+时,它需要一些时间来加载,实际上我只需要图片是50KB左右(只有图片的小显示,最大40像素)。我做了一些代码将图像直接放入实时数据库(转换为画布并使它们成为一个7KB的base64字符串)。但是,这并不是真的干净,最好使用Firebase存储。 自从新的更新3.3.0以来,您可以使用pu
从JS开始不是我的优势之一。在过去的几天里,我一直在尝试编辑这个JS函数,使其强制下载bas64图像。当点击下载按钮时,该函数的作用是打开一个带有图像的新窗口。然后用户必须右键单击并保存图片。我试图强制下载图像,而不是右键单击并另存为。 dataurl生成base4 png字符串(数据:image/jpeg;base64,/9j/4aaqskzjrgabaaqabaad/2wbdaaaebaqeb
我将如何在节点中对S3上传进行存根。js? 为了获得洞察力,我使用摩卡进行测试,使用Sinon进行存根,但我愿意改变任何事情。我有一个文件,它导出一个执行上载的函数。看起来是这样的: 如果我尝试存根或AWS。S3。原型,没有任何变化。我假设这是因为我的测试需要本身,并且每个函数都有自己的副本。 我的测试是这样的: 这个测试工作正常,但它不会将上传存根到S3,因此上传实际上要经过:X。