我正在尝试从url下载图像/文件,该图像/文件是我从typeform收到的,但这是直接下载的文件,不是您可以实际使用url查看的图片。
我成功地用弯腰制成了一个缓冲器:
const bent = require('bent');
const getBuffer = bent('buffer');
async function getBase64FromFileAsync(fileUrl) {
let bentbuffer = await getBuffer(fileUrl); // returns hex string
return bentbuffer.toString('base64');
// ^ Base64 string
}
我不成功使用js:
let fsbuffer = fs.readFileSync(fileUrl);
// ^ undefined
但是有了这个我实际上似乎什么也没做,所以我可以将图像保存到Firebase存储中。
我尝试将createReadSteam和createWriteStream与实际的url,base64甚至十六进制字符串一起使用
const remoteFile = bucket.file('image.png');
fs.createReadStream(fileUrl)
.pipe(remoteFile.createWriteStream({
我也用url,base64和hex尝试了bucket.upload方法,但是上传需要实际的本地文件(这是不可能的,因为它是Google Cloud函数(仅允许读取))
getBase64FromFileAsync(fileUrl)
.then(base64 => {
bucket.upload(base64, options, function (err, file) {
是否可以上传文件而无需下载本地副本以“移动”到Firebase存储,还是我创建文件的方式不好?