Firebase depolama yapıları

Aug 25 2020

Ne olduğunu anlamaya çalışıyorum eu.artifacts.%PROJECT NAME%.appspot.com. Şu anda günlük 5 gb sınırımdan 800 MB depolama alanı kaplıyor. Yalnızca uygulama / sekizli akış tipi dosyaları içerir. Bu paket otomatik olarak oluşturuldu ve dosya yolu eu.artifacts .... appspot.com/containers/images şeklindedir. 200mb ve 130mb kadar ağırlıkta 2 en ağır dosya. Silmeyi denedim ama otomatik olarak yeniden oluşturuldu. Kullanıcılar web siteme resim yükleyebilir, ancak bu kova şu anda tüm kullanıcı resimlerini içeren yaklaşık 10 MB yer kaplıyor.

Öyleyse sorum şu: Bu kova ne için ve neden bu kadar ağır?

Yanıtlar

44 FrankvanPuffelen Aug 25 2020 at 13:34

Cloud Functions kullanıyorsanız, gördüğünüz dosyalar, çalışma zamanının (Düğüm 10 ve üzeri için) oluşturulma şekline ilişkin yakın zamanda yapılan bir değişiklikle ilgilidir.

Cloud Functions, Cloud Functions için çalışma zamanı (Düğüm 10 ve üzeri için) oluşturmak üzere artık Cloud Build'i kullanıyor . Ve Cloud Build, bu çalışma zamanlarını depolamak için Container Registry'yi kullanır ve bu da onları projeniz altındaki yeni bir Cloud Storage paketinde depolar.

Bununla ilgili daha fazla bilgi için Firebase fiyatlandırma SSS bölümündeki şu girişe de bakın: Firebase için Cloud Functions için Node.js 10 veya sonraki bir sürümünü kullanmak için neden bir faturalandırma hesabına ihtiyacım olacak?

Ayrıca bu eserler hakkında firebase-konuşma posta listesindeki bu konuya bakın .

20 yo1995 Sep 30 2020 at 19:15

GCP desteğine danıştım ve işte birkaç şey

  • Cloud Functions, depolama kullanımında artışa neden oldu
  • Bu yapılar varsayılan pakette depolanmadığından, depolanan toplam baytınız ücretsiz katman sınırına ulaşmasa bile sizden ücret alacaklardır.
  • Yapı kümesini https://console.cloud.google.com/storage/browser adresinden kaldırın . Destek ekibine göre

Eserler kovasıyla ilgili olarak, işlevin önceki sürümlerini sakladıkları için aslında onlardan kurtulabilirsiniz. Ancak, mevcut görüntüyü içerdiğinden "gcf-sources ..." paketlerini silmenizi önermiyorum, bu nedenle bu paketi silmek işlevinizi bozabilir.

Onu tamamen çıkarmaya çalıştım ve şimdiye kadar sorun çıkarmadı. Daha sonra işleri bozarsa güncelleyeceğim.


Düzenleme 201118: Aşağıdaki yoruma bakın ve içindeki tüm içeriği kaldırırken kovayı tutmanız gerekebilir.

8 MikeAltonji Oct 12 2020 at 01:30

@ Yo1995'in yanıtına ek olarak, grubu GCP'ye gitmenize gerek kalmadan silebilirsiniz. Firebase'de kalarak, Depolama'ya ve ardından "Paket Ekle" ye gidersiniz. Oradan, gcp ve yapı paketlerini içe aktarma seçeneğini göreceksiniz. Ardından, kovaları uygun şekilde silebilirsiniz.

5 decko Nov 17 2020 at 01:40

@ Yo1995'e ekleyerek Firebase Desteği'ne danıştım
ve eserler paketinin silinmemesi gerektiğini doğruladılar. Temel olarak yapılar, "gcf-sources" paketinde depolanacak son görüntünün oluşturulmasına yardımcı olmak için kullanılır.

Bunlardan doğrudan alıntı yapmak için
"XX.artifacts" içindeki içerikleri silmekte özgürsünüz, ancak lütfen pakete dokunmadan bırakın, sonraki dağıtım döngülerinde kullanılacaktır. "

Yapı paketini tamamen silerseniz istenmeyen bazı davranışlar olabilir.
Ayrıca "Ekip bu paketi otomatik olarak temizlemek için çalışıyor, ancak çözümü yayınlamadan önce çözmeleri gereken bazı kısıtlamalar var."

Şimdilik, paketi 1 günlükten daha eski dosyaları otomatik olarak silecek şekilde ayarlıyorum.

1 Beerswiller Dec 01 2020 at 04:22

Depolama nasıl azaltılır

Bu yüzden sorunun harika bir cevabı var, ancak sorunun nasıl çözüleceğine dair çözüm daha derinlemesine dalmayı gerektiriyor.

Gelecekteki geliştiricilerin doğrudan kovalamaca yapmalarına yardımcı olmak için, GCP'deki projenize aşağıdaki kuralları ekledikten sonra görmeniz gereken sonuç burada.

Turuncu çizgi us-artifacts.<your-project>.appspot.comkovadır.

Sorunu çözmek için adımlar

  1. Https://console.cloud.google.com/ adresine gidin
  2. Firebase projesine karşılık gelen GCP projesini açın
  3. Menüde Depolama -> Tarayıcı'yı seçin
  4. Rahatsız edici us-artifacts.<your-project>.appspot.comkovaya tıklayın
  5. 'Yaşam Döngüsü' sekmesine gidin ve 3 günlük bir yaşam süresi ekleyin
  • Bir kural ekleyin
  • Nesneyi Sil
  • Yaş, 3 Gün
    Not: Sonuçlar, yaklaşık 24 saat sonrasına kadar kullanım grafiğinde görünmeyecektir

Uyarı

Firebase, önceki kapsayıcılara referans veren kapsayıcıları kullanır; bu nedenle, 3 günlük bir süre ayarlarsanız ve firebase dağıtım işlevleriniz başarısız olmaya başlarsa, sürüm oluşturmayı içerecek şekilde işlevinizin yerel adını güncellemeniz ve eskiyi silmek için bir derleme bayrağı belirtmeniz gerekir. sürümleri, bunları firebase.json dosyanızdan kaldırın veya eski işlevleri manuel olarak silin.

Sürümü belirlenmiş API türü işlevlerini kullanma

Senin GirişNoktası varsayarak ise index.ts, varsayarsak ile initilaised Firebase var

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)

mainuygulamanızın adı nerede

ve senin içinde firebase.json

...
"hosting": {
    "public": "dist",
    "ignore": ["firebase.json", "**/.*", "**/node_modules/**", "**/tests/**"],
    "rewrites": [
      {
        "source": "/api/v1/**",
        "function": "APIv1b2021202"
      }
    ]
  },
...

Veya Manuel Olarak Güncellemek için

# 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
Ankur Nov 23 2020 at 11:06

Alternatif olarak, klasörün içindeki nesneleri silmek için bir yaşam döngüsü kuralı oluşturabilirsiniz. yaşı 1 gün olarak ayarlayın. Yani klasördeki 1 günden fazla eskiyen tüm nesneleri silecektir. lifeCycle rulw

SetCondition