[Cloud Functions] Décompresse automatiquement les fichiers GZIP placés dans le stockage

Préambule

La source

J'ai modifié le code (référence link-3) qui décompresse le fichier Zip que mon prédécesseur a déposé. On suppose qu'un seul fichier est compressé au format Gzip avec Cloud Functions (Python 3.7) lancé par un déclencheur Cloud Storage.

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)

Gros problème

⇒ Au moment du placement du fichier GZIP, la capacité pouvait être de 2 Go ou plus, donc cela a fini par être une merde. ..

Lien de référence

  1. Cloud Functions Guide: Google Cloud Storage Trigger
  2. [J'ai créé une tâche sans serveur qui charge des données dans BigQuery en pilotant des événements lorsque des fichiers sont placés dans GCS](https://dev.classmethod.jp/articles/cloud-functions-gcs-trigger-load- data2bigquery /)
  3. [Comment décompresser le fichier .Zip dans 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 /)

Recommended Posts

[Cloud Functions] Décompresse automatiquement les fichiers GZIP placés dans le stockage
Convertissez les fichiers téléchargés vers Cloud Storage avec Cloud Functions (Python) afin qu'ils ne soient pas déformés dans Excel
Obtenir la liste des objets Google Cloud Storage en Java
Obtenez le fichier, la fonction, le numéro de ligne en cours d'exécution en python