gla*_*aze 97 firebase firebase-storage
我试图了解什么eu.artifacts.%PROJECT NAME%.appspot.com是。它目前占用了我每天 5GB 限制的 800MB 存储空间。它只包含应用程序/八位字节流类型的文件。这个bucket是自动创建的,文件路径是eu.artifacts....appspot.com/containers/images。2 个最重的文件有 200 mb 和 130 mb。我尝试删除它,但它再次自动创建。用户可以在我的网站上上传图片,但该存储桶目前只需要大约 10mb 包含所有用户图像。
所以我的问题是:这个桶是做什么用的,为什么它这么重?
Fra*_*len 65
火力士在这里
如果您使用的是 Cloud Functions,则您看到的文件与构建运行时(适用于 Node 10 及更高版本)的方式最近发生的变化有关。
Cloud Functions 现在使用Cloud Build为您的 Cloud Functions 创建运行时(适用于 Node 10 及更高版本)。Cloud Build 反过来使用Container Registry来存储这些运行时,这些运行时将它们存储在您项目下的新 Cloud Storage 存储桶中。
有关这方面的更多信息,另请参阅 Firebase 定价常见问题中关于为什么我需要结算帐户才能将 Node.js 10 或更高版本用于 Cloud Functions for Firebase?
另请参阅有关这些工件的 firebase-talk 邮件列表中的此线程。
更新:其他一些答案建议从存储桶中删除工件,甚至在它们上设置生命周期管理以自动执行此操作。这会导致对 Container Registry 中这些工件的悬空引用,这会破坏未来的构建。
要安全地删除工件,请从 Container Registry控制台(位于gcf文件夹下)或使用脚本删除容器。这反过来也会从您的存储桶中删除工件。
从 CLI 9.14 版开始,该firebase deploy过程会在部署后自动清理其容器映像。因此,如果您升级到最新版本,您的存储桶中不应再有额外的工件。
yo1*_*995 29
我已经咨询了 GCP 支持,这里有一些事情
关于 artifacts 存储桶,您实际上可以摆脱它们,因为它们存储的是该函数的先前版本。但是,我不建议删除 "gcf-sources..." 存储桶,因为它包含当前图像,因此删除此存储桶会弄乱您的功能。
我试图将它整体删除,到目前为止它没有造成麻烦。如果以后有问题,我会更新。
编辑 201118:请参阅下面的评论,您可能需要保留存储桶,同时删除其中的所有内容。
小智 14
添加到 @yo1995
我咨询了 Firebase 支持,他们确认不应删除工件存储桶。基本上,工件用于帮助构建要存储在“gcf-sources”存储桶中的最终图像。
直接引用它们
“您可以随意删除“XX.artifacts”中的内容,但请保持存储桶不变,它将在以下部署周期中使用。”
如果您完全删除工件存储桶,则可能会出现一些意外行为。
此外,“团队正在努力自动清理这个存储桶,但在发布解决方案之前,他们需要解决一些限制。”
目前,我将存储桶设置为自动删除超过 1 天的文件。
Mik*_*nji 13
添加到@yo1995 的响应中,您可以删除存储桶中的工件,而无需进入 GCP。留在 Firebase 中,您转到存储,然后“添加存储桶”。从那里,您将看到导入 gcp 和工件存储桶的选项。接下来,您可以相应地删除存储桶中的工件。
根据收到的一些评论,重要的是不要删除存储桶。相反,只删除存储桶中的工件!

所以这个问题有一个很好的答案,但如何解决它需要进一步深入研究。
为了帮助未来的开发人员切入正题,以下是在 GCP 中将以下规则添加到您的项目后应该看到的结果
橙色线是us-artifacts.<your-project>.appspot.com桶。

us-artifacts.<your-project>.appspot.com存储桶Firebase 使用反向引用先前容器的容器,因此如果您设置了 3 天的时间段并且您的 Firebase 部署函数开始失败,您将需要更新函数的本地名称以包含版本控制,并指定构建标志以删除旧的版本,从 firebase.json 中删除它们,或手动删除过时的函数。
使用版本化 API 类型函数
在您的入口点中,假设index.ts,并假设您已使用
admin.initializeApp(functions.config().firebase)
import * as functions from 'firebase-functions'
// define the app as a cloud function called APIv1 build xxxxxx
export const APIv1b20201202 = functions.https.onRequest(main)
Run Code Online (Sandbox Code Playgroud)
main你的应用程序的名称在哪里
并且在你的 firebase.json
...
"hosting": {
"public": "dist",
"ignore": ["firebase.json", "**/.*", "**/node_modules/**", "**/tests/**"],
"rewrites": [
{
"source": "/api/v1/**",
"function": "APIv1b2021202"
}
]
},
...
Run Code Online (Sandbox Code Playgroud)
或者,手动更新
# Deploy new function called APIv11
$ firebase deploy --only functions:APIv11
# Wait until deployment is done; now both APIv11 and APIv10 are running
# Delete APIv10
$ firebase functions:delete APIv10
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9942 次 |
| 最近记录: |