2016-07-16 103 views

risposta

5

Google Cloud Storage non ha cartelle o sottodirectory. Tuttavia, vi è un certo supporto per emularli. How Subdirectories Work di gsutil è una buona lettura per alcuni background.

Gli oggetti di Google Cloud Storage sono uno spazio dei nomi piatto, ma molti strumenti, tra cui gsutil e l'interfaccia utente di Google Cloud Storage, creano l'illusione di un albero gerarchico di file.

Esistono due convenzioni ampiamente usate per creare l'illusione di una sottodirectory vuota:

  1. (raccomandato) creare un oggetto che termina in una barra. Ad esempio, per creare una sottodirectory denominata foo nella radice di un bucket, si creerà un oggetto vuoto (dimensione 0) chiamato foo/.

  2. (legacy) Creare un oggetto con _$folder$ aggiunto al nome. Ad esempio, per creare una sottodirectory denominata foo nella radice di un bucket, si creerà un oggetto vuoto (dimensione 0) chiamato foo_$folder$.

Si noti che la maggior parte degli strumenti e delle utilità utilizzano ora il metodo 1. Il metodo 2 è usato meno frequentemente.

+0

Questa risposta ha più di un anno, quindi è possibile che le cose siano cambiate. In caso contrario, qualcuno può dirmi esattamente come (preferibilmente usando gsutil) posso creare un oggetto vuoto con un nome che termina con '/'? Spero di creare cartelle esplicite da utilizzare con gcsfuse. Grazie. – SheRey

+0

se creo un file vuoto localmente e provo a caricarlo in questo modo: "gsutil cp dummy_file gs: // / /" crea semplicemente un oggetto vuoto su gs: // //dummy_file ... e se provo a copiarlo su un oggetto chiamato gs: // / _ $ folder $ ottengo un oggetto chiamato gs: // / _ $ @jterrace – SheRey

+0

Le informazioni sono aggiornate: non c'è ancora modo di creare un oggetto segnaposto di directory con gsutil. – jterrace

1

@SheRey: guardando le cartelle create tramite l'interfaccia web GCS, Content-Type è impostato su application/x-www-form-urlencoded;charset=UTF-8 ma non ha molta importanza. Ecco cosa ha funzionato per me in python:

# pip install google-cloud-storage 

from google.cloud import storage 

gcs_client = storage.Client(project='some_project') 
bucket = gcs_client.get_bucket('some_bucket') 
blob = bucket.blob('some/folder/name/') 

blob.upload_from_string('', content_type='application/x-www-form-urlencoded;charset=UTF-8')