Firebase admin when uploading files to storage through url: Error: ENOENT: no such file or directory

Firebase admin when uploading files to storage through url: Error: ENOENT: no such file or directory

所以我正在尝试制作一个音乐应用程序,人们可以在那里上传音乐。首先,客户端获取文件并将其更改为对象 url,如下所示:

const track_src = URL.createObjectURL(track);
data.track_src = track_src;
await Req.post("/api/u/music/upload", data)

之后,服务器接收数据和对象url并上传到Firebase存储:

//track_src is the object url

await st.bucket(sid).upload(track_src, {
    gzip: true,
    metadata: {
      cacheControl: 'public, max-age=31536000',
    },
})

但我收到错误消息:

Error: ENOENT: no such file or directory, stat 'E:\Server\blob:http:\localhost:3000e53bb5-abf2-46b4-bd0c-268b242e93f3'

你想做的事是不可能的。在存储中上传文件基本上有两种方法,您必须:

  • 使用bucket().upload()方式上传,接受你本地文件的路径作为pathString参数,所以你为此需要实际文件,而不是 url。如果您将文件存储在本地并且考虑到您共享的信息,这是理想的选择,这可能是适合您的方式。您可以查看此 了解更多信息。

  • 使用bucket().file()在Storage中创建一个空文件,然后使用file.createWriteStream()方法获取可以写入文件内容的流。如果文件在内存中,这可能是一个有效的解决方案。

我建议您查看此 documentation for the methods offered for the bucket class and this documentation 以了解为文件 class.

提供的方法