[PYTHON] [Cloud-Funktionen] Dekomprimieren Sie automatisch im Speicher abgelegte GZIP-Dateien
Präambel
- Ich möchte automatisch dekomprimieren, wenn eine GZIP-Datei zu Google Cloud Storage hinzugefügt (aktualisiert) wird.
- Auf der Suche nach Google Cloud Storage API-Referenz kann ich keine Beschreibung zur GZIP-Dekomprimierung finden.
- Es bleibt nichts anderes übrig, als zu versuchen, [Pythons GZIP-Bibliothek] zu verwenden (https://docs.python.org/ja/3/library/gzip.html).
Quelle
Ich habe den Code (Referenzlink-3) geändert, der die Zip-Datei dekomprimiert, die mein Vorgänger gelöscht hat.
Es wird davon ausgegangen, dass eine einzelne Datei mit Cloud-Funktionen (Python 3.7), die von einem Cloud-Speicher-Trigger gestartet wurden, Gzip-komprimiert ist.
main.py
from google.cloud import storage
import io,gzip
def hello_gcs(event, context):
client = storage.Client()
bucket_name = event['bucket']
bucket = client.get_bucket(bucket_name)
blob_name = event['name']
blob = bucket.blob(blob_name)
data = io.BytesIO(blob.download_as_string())
with gzip.open(data) as gz:
file = gz.read()
blob_decompress = bucket.blob(blob_name.replace('.gz',''))
blob_decompress.upload_from_string(file)
Großes Problem
- Der maximale Speicher für Cloud-Funktionen beträgt 2 GB (zum Zeitpunkt der Veröffentlichung).
- Wenn die Verarbeitung die Speicherkapazität überschreitet, tritt natürlich ein Fehler auf.
⇒ Zum Zeitpunkt der Platzierung der GZIP-Datei konnte die Kapazität 2 GB oder mehr betragen, sodass es sich um einen Mist handelte. ..
Referenzlink
- Handbuch zu Cloud-Funktionen: Google Cloud Storage Trigger
- [Ich habe einen serverlosen Job erstellt, der Daten durch Ereignissteuerung in BigQuery lädt, wenn Dateien in GCS abgelegt werden](https://dev.classmethod.jp/articles/cloud-functions-gcs-trigger-load- data2bigquery /)
- [Wie entpacke ich die .Zip-Datei in Google Cloud Storage? ](Https://www.it-swarm.dev/ja/google-cloud-platform/google%E3%82%AF%E3%83%A9%E3%82%A6%E3%83%89%E3% 82% B9% E3% 83% 88% E3% 83% AC% E3% 83% BC% E3% 82% B8% E3% 81% A7zip% E3% 83% 95% E3% 82% A1% E3% 82% A4% E3% 83% AB% E3% 82% 92% E8% A7% A3% E5% 87% 8D% E3% 81% 99% E3% 82% 8B% E3% 81% AB% E3% 81% AF% E3% 81% A9% E3% 81% 86% E3% 81% 99% E3% 82% 8C% E3% 81% B0% E3% 82% 88% E3% 81% 84% E3% 81% A7% E3% 81% 99% E3% 81% 8B% EF% BC% 9F / 837268170 /)