gpt4 book ai didi

firebase - 如何从firebase函数中的firebase存储获取图像的尺寸?

转载 作者:行者123 更新时间:2023-12-03 22:25:40 24 4
gpt4 key购买 nike

我有一个具有 firebase 后端的应用程序。当我制作时,我没有考虑图像的尺寸,好像它们将来会有用一样,所以我只是保持图像原样,并将它们的 URL 保存在 firestore 中。

但是现在我在向用户显示图像之前需要图像的尺寸,所以我想制作一个我只会执行一次的函数,以便在 firestore 中设置具有它们尺寸的文件,我还将添加一些客户端代码在上传之前获取尺寸。

所以我几乎尝试了所有方法来获取函数中的文件尺寸,但无法做到。

示例[摘要代码]

此代码在 node.js 中有效,但在 firebase 函数中失败

    const fs = require('fs')
const request = require('request')
import sizeOf from 'image-size'
const FIRE = 'https://firebasestorage.googleapis.com/file....'
const FILE = 'file.jpg';

request.head(FIRE, (err, res, body) => {
request(FIRE)
.pipe(fs.createWriteStream(FILE))
.on('close', () => {
sizeOf(FILE, (err1, dimensions) => {
const result = {
"width": dimensions.width,
"height": dimensions.height
}
console.log(dimensions.width, dimensions.height);
fs.unlinkSync(FILE);
response.setHeader('Content-Type', 'application/json');
const responseData = {
'Error': false,
'Message': "result : " + result
};
response.send(JSON.stringify(responseData));
})
})
})

如果有人对此有所了解,请帮助我!

此外还告诉我 firebase 如何保存图像,我的意思是用什么方式?每当我打开 url 时,它都不会向我显示图像,而只是下载图像,在随机网站上取消其他 url。

我有一个技巧可以做到这一点。它很容易出错,但肯定会起作用:

使用 api 获取图像的所有 url 并使用 node.js 在本地执行这些操作并将结果发布到另一个 api,然后将数据提供给 firestore ?

最佳答案

您的代码正在尝试写入:

const FILE = 'file.jpg';

这是与您的 index.js 所在目录相同的文件被储存了。这是(如错误消息所述)Cloud Functions 容器中的只读目录。如果你想写入任何文件,它们必须在 /tmp 中。 (也称为 tempfs )。见 Write temporary files from Google Cloud Function

关于firebase - 如何从firebase函数中的firebase存储获取图像的尺寸?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56370606/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com