1 回答

TA貢獻(xiàn)1864條經(jīng)驗(yàn) 獲得超6個(gè)贊
擴(kuò)展名根據(jù)您的配置方式確定性地確定新文件名。您可以在擴(kuò)展程序的源代碼中查看如何確定名稱的確切代碼。
當(dāng)您安裝擴(kuò)展程序時(shí),它會(huì)要求提供與原始路徑相關(guān)的調(diào)整大小圖像的路徑。那是新圖像的路徑(當(dāng)然,相對(duì)于原始圖像)。
除此之外,文檔聲明它將以配置的寬度和高度為后綴。
使用與原始上傳圖像相同的名稱命名調(diào)整大小的圖像,但后綴為您指定的寬度和高度。
因此,如果您沒有指定路徑,而是指定了 200x200,然后上傳image.jpg
到存儲(chǔ)桶的根目錄,則新名稱將是:image_200x200.jpg
,位于存儲(chǔ)桶的根目錄。
如果您指定了 path resized
,并且您指定了 200x200,并且上傳image2.jpg
到存儲(chǔ)桶的根目錄,則新名稱將/resized/image2_200x200.jpg
與源圖像在同一個(gè)存儲(chǔ)桶中。
要獲取下載 URL,您需要getDownloadURL
在擴(kuò)展函數(shù)創(chuàng)建新文件后調(diào)用具有新名稱的存儲(chǔ)引用。
如果你想等待,你可以用類似下面的代碼來輪詢:
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);
}
})
}
這就是上傳后的調(diào)用方式:
const storageRef = firebase.storage().ref().child('image_200x200.jpg');
keepTrying(10, storageRef).then((url) => console.log(url));
添加回答
舉報(bào)