使用Firebase Web SDK,我可以在上传文件后轻松获得downloadUrl
script-src: 'self';
但是我安装了Resize Images Extention,现在,我想尽快获得调整大小的downloadUrl。怎么做 ?我找不到任何解释...
答案 0 :(得分:1)
扩展名根据您的配置方式确定新文件名。您可以在扩展程序的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);
}
})
}