如何在Firebase主机中清理旧的部署版本?
每次部署到承载新部署版本的Firebase时,都会创建一个新的部署版本,以便您可以回滚并查看部署了谁。这意味着每次部署的每个文件都会被存储并占用更多空间如何在Firebase主机中清理旧的部署版本?,firebase,firebase-hosting,Firebase,Firebase Hosting,每次部署到承载新部署版本的Firebase时,都会创建一个新的部署版本,以便您可以回滚并查看部署了谁。这意味着每次部署的每个文件都会被存储并占用更多空间 除了一个接一个地手动删除每个部署的版本外,还有没有自动清理这些无用文件的方法?你说得对。您需要使用Firebase主机控制台逐个删除旧的部署版本 没有其他方法可以做到这一点,因此我建议您提交一个文件,以便在Firebase主机控制台中删除多个部署的版本 更新: 您可以在此处投票(请避免+1垃圾邮件,使用反应)选择团队提出的备选方案之一(批量删除
除了一个接一个地手动删除每个部署的版本外,还有没有自动清理这些无用文件的方法?你说得对。您需要使用Firebase主机控制台逐个删除旧的部署版本 没有其他方法可以做到这一点,因此我建议您提交一个文件,以便在Firebase主机控制台中删除多个部署的版本 更新:
您可以在此处投票(请避免+1垃圾邮件,使用反应)选择团队提出的备选方案之一(批量删除,仅保留X个版本,保留发布日期
更新日期:2019年2月 由谷歌员工确认@
目前正在积极进行这项工作 Nathan的选择很好,但我有一个使用AutoHotkey的快速而肮脏的方法。删除每个版本大约需要一秒钟的时间,因此您可以在10秒内删除一个页面
#a::
Click
MouseGetPos, xpos, ypos
MouseMove, xpos, ypos + 30
Sleep 300
Click
Sleep 400
Click 1456, 816
MouseMove, xpos, ypos + 82
return
#s::
Click
MouseGetPos, xpos, ypos
MouseMove, xpos, ypos - 820
return
您可能需要修改屏幕的精确像素值,但这在我的1920x1080上非常有效
Win+a是删除并移动到下一个条目,Win+s是移动到下一页。将鼠标放在第一个3点菜单上,然后开始 此脚本还不是超级可靠的,因此使用它的风险自负。我稍后会尝试更新它,但现在为我工作。 只需一些javascript,单击按钮即可逐个删除已部署的项目
var deleteDeployment=函数(it){
它。点击()
setTimeout(函数(){
$('.md dialog container.delete dialog button.md引发:包含(“删除”))。单击()
}, 300)
}
$('.h5g hist status deployed').map((i,a)=>$(a.parent()).map((i,a)=>$(a.find('md-menu按钮:包含(删除)'))。每个((i,it)=>{
setTimeout(函数(){
删除部署(it)
},(i+1)*2000年)
})
由于选择器依赖于主机控制面板上的当前DOM结构和类,这可能有点脆弱,但对我来说是可行的
注意:此脚本(如果从控制台执行)或bookmarklet将单击并确认删除当前视图中的所有行。我相当肯定,即使您在当前部署上单击“删除”,它也不会删除它
用于在控制台中运行的功能:
let deleteAllHistory = () => {
let deleteBtns = document.querySelectorAll('.table-row-actions button.md-icon-button');
const deleteBtn = (pointer) => {
deleteBtns[pointer].click();
setTimeout(() => {
document.querySelector('.md-open-menu-container.md-clickable md-menu-item:last-child button').click();
setTimeout(() => {
document.querySelector('.fb-dialog-actions .md-raised').click();
if(pointer < deleteBtns.length - 1) {
deleteBtn(pointer + 1);
}
}, 500);
}, 500);
};
deleteBtn(0);
};
Firebase最终实施了一个解决方案 现在可以设置保留版本的限制 编辑:上一个链接已过时。以下是一个新的链接:
在发布历史记录表的顶部,单击工具栏并选择“版本历史记录设置”。设置为所需数量,然后单击“保存”。这将自动删除较旧的部署。我已经填写了一个功能请求,但我怀疑它是否能够实现。哦,好吧,哦,痛苦——就我而言,我有218个!(单击菜单,单击删除,单击删除…单击菜单,单击删除,单击删除…重复218次…@Pier请链接到您创建的功能请求,以便我们可以跟踪它。谢谢编辑:我看到firebase上的功能请求不是公开的。“这有点……不太好。”李维,firebase工具回购协议也报道了这一点。给每个人:你可以在这里投票(请避免+1垃圾邮件,使用反应)团队提出的备选方案之一(批量删除,只保留X个版本,保留发布日期
fetch(`https://firebasehosting.clients6.google.com/v1beta1/sites/${projectID}/versions/${versionID}?key=${key}`,{method:“DELETE”,credentials:“include'})代码>但是,在运行时,它会显示“请求缺少所需的身份验证凭据”。这很奇怪,因为“网络”选项卡显示请求是相同的。(除了两块曲奇饼的微小变化,它们似乎无关)@Venryx你明白了吗?不,对不起。我最终使用了上面@AAverin的解决方案,效果很好。太棒了。这就是答案。注意这将删除域:|这将在五分钟内清除3GB的旧部署。非常感谢。酷!你让我的生活更轻松。这是截至2019年3月的答案:
javascript:(function()%7Bvar%20deleteBtns%3Ddocument.querySelectorAll('.table-row-actions%20button.md-icon-button')%2CdeleteBtn%3Dfunction(a)%7BdeleteBtns%5Ba%5D.click()%2CsetTimeout(function()%7Bdocument.querySelector('.md-open-menu-container.md-clickable%20md-menu-item%3Alast-child%20button').click()%2CsetTimeout(function()%7Bdocument.querySelector('.fb-dialog-actions%20.md-raised').click()%2Ca%3CdeleteBtns.length-1%26%26deleteBtn(a%2B1)%7D%2C500)%7D%2C500)%7D%3BdeleteBtn(0)%7D)()