从网址下载图片而不将其保存到本地,然后上传到Firebase存储

时间:2020-02-18 15:34:05

标签: firebase google-cloud-functions google-cloud-storage

我正在尝试从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存储,还是我创建文件的方式不好?

0 个答案:

没有答案
相关问题