web-dev-qa-db-fra.com

Importer un fichier dans le sous-répertoire de Google Cloud Storage Bucket en utilisant Python

J'ai réussi à implémenter la fonction python pour télécharger un fichier dans le bucket Google Cloud Storage mais je veux l'ajouter à un sous-répertoire (dossier) dans le bucket et quand j'essaye de l'ajouter à le nom du compartiment, le code ne trouve pas le dossier.

Merci!

def upload_blob(bucket_name, source_file_name, destination_blob_name):
  """Uploads a file to the bucket."""
  storage_client = storage.Client()
  bucket = storage_client.get_bucket(bucket_name +"/folderName") #I tried to add my folder here
  blob = bucket.blob(destination_blob_name)

  blob.upload_from_filename(source_file_name)

  print('File {} uploaded to {}.'.format(
    source_file_name,
    destination_blob_name))
12
seanie_oc

Vous ajoutez le "dossier" au mauvais endroit. Notez que Google Cloud Storage n'a pas de vrais dossiers ou répertoires (voir la dernière puce de la section Naming ).

Un répertoire simulé n'est vraiment qu'un objet avec un préfixe dans son nom. Par exemple, plutôt que ce que vous avez en ce moment:

  • bucket = bucket/folderName
  • objet = nom_objet

Vous voudrez plutôt:

  • seau = seau
  • object = folderName/objectname

Dans le cas de votre code, je pense que cela devrait fonctionner:

bucket = storage_client.get_bucket(bucket_name)
blob = bucket.blob("folderName/" + destination_blob_name)
blob.upload_from_filename(source_file_name)
20
jterrace