使用Firebase存储上传后如何获取调整后大小的downloadUrl(Web SDK +调整图像大小)

使用Firebase Web SDK,我可以在上传文件后轻松获得downloadUrl

script-src: 'self';

但是我安装了Resize Images Extention,现在,我想尽快获得调整大小的downloadUrl。怎么做 ?我找不到任何解释...

slamming123456 回答:使用Firebase存储上传后如何获取调整后大小的downloadUrl(Web SDK +调整图像大小)

扩展名根据您的配置方式确定新文件名。您可以在扩展程序的source code中查看有关如何确定名称的确切代码。

在安装扩展程序时,它会要求提供一个调整大小后的图像的路径,该路径是相对于原始路径的。这就是新图像的路径(当然是相对于原始图像的路径)。

除此之外,documentation声明将在其后缀上配置宽度和高度。

  

使用与原始上传的图像相同的名称命名调整大小的图像,但后缀为您指定的宽度和高度。

因此,如果您未指定路径,并且指定了200x200,然后将image.jpg上传到存储桶的根目录,则新名称为:image_200x200.jpg,位于存储桶的根目录桶。

如果您指定了路径resized,并且指定了200x200,并且已将image2.jpg上传到存储桶的根目录,则新名称将是{源图像。

要获取下载URL,扩展功能创建新文件后,您需要使用新名称调用存储引用上的/resized/image2_200x200.jpg

如果要等待,可以使用类似于以下内容的代码进行轮询:

getDownloadURL

这就是您在上传后如何称呼它:

function delay(t,v) {
  return new Promise(function(resolve) { 
    setTimeout(resolve.bind(null,v),t)
  });
}

function keepTrying(triesRemaining,storageRef) {
  if (triesRemaining < 0) {
    return Promise.reject('out of tries');
  }

  return storageRef.getDownloadURL().then((url) => {
    return url;
  }).catch((error) => {
    switch (error.code) {
      case 'storage/object-not-found':
        return delay(2000).then(() => {
          return keepTrying(triesRemaining - 1,storageRef)
        });
      default:
        console.log(error);
        return Promise.reject(error);
    }
  })
}
本文链接:https://www.f2er.com/3057319.html

大家都在问