如何使用JavaScript在Firebase Storage指定文件夹上传自动生成key命名的文件
问题原因
你当前的代码直接对Audio文件夹的存储引用执行上传操作,会把文件直接命名为Audio存储在根目录,而非存入Audio文件夹下。要实现需求,需要在Audio路径下拼接自动生成的唯一文件名,针对完整的文件路径引用执行上传即可。
实现代码
安卓、iOS端常用的自动生成key规则和Firebase Realtime Database push()方法生成的唯一键规则完全对齐,你可以直接沿用该逻辑保证多端命名规则一致,示例如下:
// 生成和移动端规则一致的唯一key const newAudioMetaRef = firebase.database().ref('你的音频元数据对应存储的数据库路径').push(); const autoGeneratedKey = newAudioMetaRef.key; // 拼接完整存储路径:Audio文件夹 + 自动生成的唯一key const targetFileRef = rootRef.child(`Audio/${autoGeneratedKey}`); // 执行上传操作 targetFileRef.put(file, metadata).then(uploadSnapshot => { // 上传完成后的业务逻辑 })
如果不需要关联Realtime Database,也可以用UUID等工具生成符合业务要求的唯一标识符作为文件名。需要保留原始文件后缀的话,从file.name中提取后缀拼接到自动生成的key后即可。
内容的提问来源于stack exchange,提问作者Rishikesh Singh
相关产品推荐
相关产品推荐

