当前位置: 首页 > 知识库问答 >
问题:

获取图像url Firebase存储(管理员)

庾君博
2023-03-14

我要上传一张图片到firebase的存储器。我用的不是网页版存储(不应该用)。我正在使用firebase admin。没问题,我毫无困难地上传了文件,并在变量“file”中得到结果。

如果我访问firebase存储控制台,图像就在那里。好吧

return admin.storage().bucket().upload(filePath, {destination: 'demo/images/restaurantCover.jpg', 
                                                            metadata:{contentType: 'image/jpeg'}
                                                            public: true
                                                           }).then(file =>{
            console.log(`file --> ${JSON.stringify(file, null, 2)}`);
            let url = file["0"].metadata.mediaLink; // image url
            return resolve(res.status(200).send({data:file})); // huge data
        }) ;

现在,我有一些问题。

> < li>

为什么对< code>upload ()方法的响应有这么多信息和这么多对象?回顾这个巨大的对象,我在元数据中发现了一个名为< code>mediaLink的属性,它是图像的下载url。但是...

为什么url与fire base显示的不同?为什么我找不到DownloadURL属性?

如何获取firebase的url?

Firebase:https://firebasestorage.googleapis.com/v0/b/myfirebaseapp.appspot.com/o/demo/images/thumb_restaurant.jpg?alt=media

MediaLink:https://www.googleapis.com/download/storage/v1/b/myfirebaseapp.appspot.com/o/demo/images/restaurant.jpg?generation=1530193601730593

共有1个答案

长孙哲
2023-03-14

查看Google Cloud Storage:Node.js客户端留档,他们有一个指向示例代码的链接,其中准确显示了如何执行此操作。此外,请参阅文件类留档示例(如下)

// Imports the Google Cloud client library
const Storage = require('@google-cloud/storage');

// Creates a client
const storage = new Storage();

/**
 * TODO(developer): Uncomment the following lines before running the sample.
 */
// const bucketName = 'Name of a bucket, e.g. my-bucket';
// const filename = 'File to access, e.g. file.txt';

// Gets the metadata for the file
storage
  .bucket(bucketName)
  .file(filename)
  .getMetadata()
  .then(results => {
    const metadata = results[0];

    console.log(`File: ${metadata.name}`);
    console.log(`Bucket: ${metadata.bucket}`);
    console.log(`Storage class: ${metadata.storageClass}`);
    console.log(`Self link: ${metadata.selfLink}`);
    console.log(`ID: ${metadata.id}`);
    console.log(`Size: ${metadata.size}`);
    console.log(`Updated: ${metadata.updated}`);
    console.log(`Generation: ${metadata.generation}`);
    console.log(`Metageneration: ${metadata.metageneration}`);
    console.log(`Etag: ${metadata.etag}`);
    console.log(`Owner: ${metadata.owner}`);
    console.log(`Component count: ${metadata.component_count}`);
    console.log(`Crc32c: ${metadata.crc32c}`);
    console.log(`md5Hash: ${metadata.md5Hash}`);
    console.log(`Cache-control: ${metadata.cacheControl}`);
    console.log(`Content-type: ${metadata.contentType}`);
    console.log(`Content-disposition: ${metadata.contentDisposition}`);
    console.log(`Content-encoding: ${metadata.contentEncoding}`);
    console.log(`Content-language: ${metadata.contentLanguage}`);
    console.log(`Metadata: ${metadata.metadata}`);
    console.log(`Media link: ${metadata.mediaLink}`);
  })
  .catch(err => {
    console.error('ERROR:', err);
  });
 类似资料:
  • 我正在开发一款用于拍照的Android应用程序。首先,用户拍摄个人资料图片。此图像的Url保存在Firebase实时数据库中。用于检索以下下载URL的示例代码 这个url被保存在数据库中的多个地方,我需要在那里加载用户的个人资料图片——他的每个帖子的条目,他给应用程序上其他人的消息,等等。 现在,如果他以后更改个人资料图片,我有以下两个选项 更新每个数据库条目-非常繁琐、暴力和资源密集 那么,有没

  • 下面是我得到的控制台输出和错误: 下面是我按下Get Images按钮后的控制台输出,您可以看到图像的url为:

  • 在firebase storage的web sdk中,您可以从Blob数据上载图像。我有一个nodeJS应用程序,想将blob数据中的图像上传到我的存储桶中。在文档中,如果运行节点服务器环境,建议使用AdminSDK。但我在firbase存储管理文档中找不到此功能。 这是我的密码:

  • 问题内容: 首先介绍技术资料: 我们正在使用VS 2008 pro并正在运行MS SQL 2008服务器。对于源代码控制,我们使用Subversion。 我们真的很想让我们的存储过程处于颠覆状态,因此我们可以知道更改的内容,时间等。 但是,要使其正常工作,它必须是无缝的,否则,开发人员将忘记将过程包括在其提交中。 那么,对此有什么好的解决方案吗? 我敢肯定我们不能成为唯一拥有此问题的公司:-) 问

  • Kubernetes集群管理员通过提供不同的存储类,可以满足用户不同的服务质量级别、备份策略和任意策略要求的存储需求。动态存储卷供应使用StorageClass进行实现,其允许存储卷按需被创建。 如果没有动态存储供应,Kubernetes集群的管理员将不得不通过手工的方式类创建新的存储卷。 通过动态存储卷,Kubernetes将能够按照用户的需要,自动创建其需要的存储。 供应者 创建存储类之前必须