首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >存储具有唯一/随机名称的文件

存储具有唯一/随机名称的文件
EN

Stack Overflow用户
提问于 2016-05-26 02:10:03
回答 2查看 22.6K关注 0票数 42

使用新的Firebase API,您可以将文件从客户端代码上传到云存储。examples假定文件名在上载过程中是已知的或静态的:

代码语言:javascript
复制
// Create a root reference
var storageRef = firebase.storage().ref();
    
// Create a reference to 'mountains.jpg'
var mountainsRef = storageRef.child('mountains.jpg');
    
// Create a reference to 'images/mountains.jpg'
var mountainImagesRef = storageRef.child('images/mountains.jpg');

代码语言:javascript
复制
// File or Blob, assume the file is called rivers.jpg
var file = ...
    
// Upload the file to the path 'images/rivers.jpg'
// We can use the 'name' property on the File API to get our file name
var uploadTask = storageRef.child('images/' + file.name).put(file);

随着用户上传自己的文件,名称冲突将成为一个问题。如何让Firebase创建一个文件名,而不是自己定义它?数据库中是否有类似于push()的功能,用于创建唯一的存储引用?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-05-26 02:18:39

Firebase存储产品经理:

TL;DR:使用UUID生成器(在Android (UUID)和iOS (NSUUID)中,它们是内置的,在JS中,您可以使用类似以下内容:Create GUID / UUID in JavaScript?),如果您想保留它,则附加文件扩展名(将file.name拆分为'.‘并获取最后一段)

我们不知道开发人员会想要哪个版本的独特文件(见下文),因为有很多这样的用例,所以我们决定让开发人员来选择。

代码语言:javascript
复制
images/uuid/image.png   // option 1: clean name, under a UUID "folder"
image/uuid.png          // option 2: unique name, same extension
images/uuid             // option 3: no extension

在我看来,在我们的文档中解释这件事是合理的,所以我会在内部提交一个bug来记录它:)

票数 79
EN

Stack Overflow用户

发布于 2021-01-28 14:39:17

首先安装uuid - npm i uuid

然后像这样定义文件引用

代码语言:javascript
复制
import { v4 as uuidv4 } from "uuid";

const fileRef = storageRef.child(
            `${uuidv4()}-${Put your file or image name here}`
          );

之后,使用fileRef上传文件

fileRef.put(Your file)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37444685

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档