gpt4 book ai didi

firebase - 如何获取带有下载 URL 的 Firebase 存储文件字节/blob 并使用 JSZip 对其进行压缩?

转载 作者:行者123 更新时间:2023-12-05 04:12:44 24 4
gpt4 key购买 nike

例如使用 JSZip:

zip.file(/*get firebase storage file using url */);
zip.generateAsync({type:"blob"})
.then(function (blob) {
FileSaver.saveAs(blob, "hello.zip");
});

关于如何解决这个问题有什么想法吗?

最佳答案

Download Files on Web显示如何下载文件以及如何 configure CORS (必须直接在浏览器中下载数据)。

JSZip 支持将 promise 作为内容:您可以将每个异步下载包装到一个 promise 中。

// raw xhr, fetch, or your favorite ajax library
// just remember, you want:
// - to download **binary** data (jQuery's $.ajax won't work out of the box for example)
// - to return a promise of the content
function downloadUrlAsPromise (url) {
return new Promise(function (resolve, reject) {
var xhr = new XMLHttpRequest();
xhr.open('GET', url);
xhr.responseType = "blob";
xhr.onreadystatechange = function(evt) {
if (xhr.readyState === 4) {
if (xhr.status === 200) {
resolve(xhr.response);
} else {
reject(new Error("Ajax error for " + url + ": " + xhr.status));
}
}
});
xhr.send();
});
}

// now, we can link firebase and JSZip:
var path = "images/stars.jpg";
var contentP = storageRef.child(path).getDownloadURL().then(downloadUrlAsPromise);
zip.file(path, contentP);

关于firebase - 如何获取带有下载 URL 的 Firebase 存储文件字节/blob 并使用 JSZip 对其进行压缩?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39865461/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com