如何在 Firebase 存储上上传多个文件并获取 json 或 csv 文件形式的访问 URL 和元数据? [已关闭]

问题描述 投票:0回答:2

作为一名 Android 开发者,这是一个令我困惑的问题。

我有大约 5000 个 mp3 文件,我想将它们添加到不同文件夹中的 firebase 存储中。 到目前为止,我一直在从浏览器添加文件,只需复制并粘贴 Firestore 中的网址,然后在我的 Android 项目中使用它们。

现在我需要上传这么多文件,我怎样才能得到

  1. 文件的网址 这非常重要,我需要找到一种方法来获取上传文件的网址,我不想最终手动执行此操作。

  2. 文件的元数据,实际上只是持续时间。 如果这可以通过 firebase 的某些插件服务实现,那么它将非常有帮助,或者我可以在我的计算机上运行一些第三方应用程序。

请帮忙。

firebase google-cloud-platform google-cloud-firestore google-cloud-storage firebase-storage
2个回答
1
投票

一种可能的方法是使用 Cloud Function 生成签名 URL 并获取文件的元数据并将这些信息存储在 Firestore 文档中。

以下 Cloud Function 代码为上传到默认存储桶的每个文件创建一个 Firestore 文档,该文档具有自动生成的 ID 和包含文件名的字段

fileName

exports.saveFileDetails = functions.storage.object().onFinalize(async object => {

    try {
        const bucket = admin.storage().bucket(object.bucket);
        const file = bucket.file(object.name);

        const signedURLconfig = { action: 'read', expires: '08-12-2035' };

        const signedURLArray = await file.getSignedUrl(signedURLconfig);
        const url = signedURLArray[0];

        const metadata = await file.getMetadata();

        return admin.firestore().collection('...').add({ signedURL: signedURLArray[0], metadata: metadata[0], fileName: object.name });

    } catch (error) {
        console.log(error);
        return null;
    }

});

请注意,如果您确定文件名值遵循文档 ID 的约束,则可以使用文件名值作为 Firestore 文档的 ID。


0
投票

为了有效地做到这一点,您可以使用 admin-sdk 创建一个节点应用程序,它将读取指定文件夹的文件结构并在处理每个文件时记录输出。

NPM 包读取视频长度

用于管理 CSV 格式的 NPM 包

© www.soinside.com 2019 - 2024. All rights reserved.