0

Le python GCP docs ont un script avec la fonction suivante:fichiers multiples, Google Cloud Storage via Python Client Library

def upload_pyspark_file(project_id, bucket_name, filename, file): 
     """Uploads the PySpark file in this directory to the configured 
     input bucket.""" 
     print('Uploading pyspark file to GCS') 
     client = storage.Client(project=project_id) 
     bucket = client.get_bucket(bucket_name) 
     blob = bucket.blob(filename) 
     blob.upload_from_file(file) 

J'ai créé une fonction d'analyse syntaxique argument dans mon script qui prend en plusieurs arguments (noms de fichiers) à télécharger dans un compartiment GCS. J'essaie d'adapter la fonction ci-dessus pour analyser ces args multiples et télécharger ces fichiers, mais je ne sais pas comment procéder. Ma confusion est avec les variables 'filename' et 'file' ci-dessus. Comment puis-je adapter la fonction à mon objectif spécifique?

Répondre

1

Je ne pense pas que vous êtes toujours à la recherche de quelque chose comme ça?

from google.cloud import storage 
import os 

files = os.listdir('data-files') 
client = storage.Client.from_service_account_json('cred.json') 
bucket = client.get_bucket('xxxxxx') 


def upload_pyspark_file(filename, file): 
    # """Uploads the PySpark file in this directory to the configured 
    # input bucket.""" 
    # print('Uploading pyspark file to GCS') 
    # client = storage.Client(project=project_id) 
    # bucket = client.get_bucket(bucket_name) 
    print('Uploading from ', file, 'to', filename) 
    blob = bucket.blob(filename) 
    blob.upload_from_file(file) 


for f in files: 
    upload_pyspark_file(f, "data-files\\{0}".format(f)) 

La différence entre file et filename est comme vous avez pu le deviner, file est le fichier source et filename est le fichier de destination.