La libreria client di App Engine per Cloud Storage offre le seguenti funzioni:
Funzioni
- cloudstorage.copy2() copia il file specificato nel nuovo nome del file specificato nello stesso bucket Cloud Storage.
- cloudstorage.delete() elimina l'oggetto specificato dal bucket Cloud Storage.
- cloudstorage.listbucket() elenca gli oggetti nel bucket Cloud Storage.
- cloudstorage.open() apre un oggetto esistente nel bucket Cloud Storage per la lettura o la sovrascrittura oppure crea un nuovo oggetto, a seconda della modalità specificata
- cloudstorage.stat() fornisce informazioni sui metadati relative al file, come tipo di contenuto, dimensione, timestamp, digest MD5 e intestazioni Cloud Storage.
Dopo aver richiamato cloudstorage.open()
per restituire l'oggetto simile a un file che rappresenta l'oggetto Cloud Storage specificato, puoi utilizzare le funzioni file Python standard, come write()
e close()
, per scrivere un oggetto nel bucket Cloud Storage o read()
per leggere un oggetto dal bucket Cloud Storage.
Corsi
Funzioni
- cloudstorage.copy2 (src, src, src=Nessuno, src=Nessuno)
-
Copia il file specificato nel nuovo nome file specificato, copiando anche i metadati per impostazione predefinita. Se vuoi, puoi sovrascrivere i metadati nella copia fornendo il parametro facoltativo
metadata
.Genera cloudstorage.NotFoundError se l'oggetto Cloud Storage specificato non esiste o cloudstorage.AuthorizationError se l'autorizzazione non è riuscita.
Argomenti
- src (obbligatorio)
- Il nome completo del file Cloud Storage per l'oggetto, nel formato
/bucket/object_name
. Deve essere un nome file completo e può includere il delimitatore "/". - dst (obbligatorio)
- Il nome completo del file Cloud Storage per la copia dell'oggetto, nel formato
/bucket/object_name
. Deve essere un nome file completo e può includere il delimitatore "/". - metadata= Nessuno (facoltativo)
- Un dict dei metadati per questa copia, ad esempio
{'x-goog-meta-foo': 'bar'}
. Se fornisci il parametro dei metadati, nessuno dei metadati originali verrà copiato nel nuovo file. Se non vengono forniti metadati, (None
), vengono copiati tutti i metadati del file di origine. - retry_params= Nessuno (Facoltativo)
- Un oggetto RetryParams in cui fornisci le modifiche che vuoi apportare al timeout predefinito e riprova a configurare le impostazioni per questa chiamata.
Esempio
- Per copiare un file, aggiungendo nuovi metadati e ignorando l'errore se il file di origine non esiste:
-
import cloudstorage try: cloudstorage.copy2('/my_bucket/README', '/my_bucket/README2', metadata={'x-goog-meta-zzzzz': 'zzzzz'}) except cloudstorage.NotFoundError: pass
- cloudstorage.delete (nomefile, retry_params=Nessuno)
-
Elimina il file specificato dal bucket Cloud Storage.
Genera cloudstorage.NotFoundError se l'oggetto Cloud Storage specificato non esiste.
Argomenti
- filename (obbligatorio)
- Il nome completo del file Cloud Storage per l'oggetto, nel formato
/bucket/object_name
. Deve essere un nome file completo e può includere il delimitatore "/". - retry_params= Nessuno (Facoltativo)
- Un oggetto RetryParams in cui fornisci le modifiche che vuoi apportare al timeout predefinito e riprova a configurare le impostazioni per questa chiamata.
Esempio
- Per eliminare un file ma ignorare l'errore quando il file non esiste:
-
import cloudstorage try: cloudstorage.delete(filename) except cloudstorage.NotFoundError: pass
- cloudstorage.listbucket (path_prefix, path_prefix=Nessuno, path_prefix=Nessuno, path_prefix=Nessuno, path_prefix=Nessuno)
- Restituisce un oggetto iteratore bucket. Questo iteratore restituisce un elenco ordinato di oggetti che corrispondono a tutti i filtri. Tieni presente che questa funzione è asincrona. Non si blocca, a meno che l'iteratore non venga chiamato
prima che l'iteratore riceva i risultati.
Questa funzione opera in due diverse modalità a seconda che venga utilizzato o meno l'argomento
delimiter
:- Modalità regolare (predefinita): elenca tutti i file nel bucket senza alcun concetto di gerarchia. (Cloud Storage non dispone di gerarchie di directory reali).
- Modalità di emulazione delle directory: se specifichi l'argomento
delimiter
, viene utilizzato come separatore di percorso per emulare una gerarchia di directory.
Argomenti
- path_prefix (Obbligatorio)
- Un percorso Cloud Storage nel formato
/bucket
o/bucket/prefix
, ad esempio/bucket/foo/2001
. Verranno restituiti solo gli oggetti il cui percorso completo inizia conpath_prefix
. - indicatori= Nessuno (facoltativo)
- Stringa. Un altro prefisso di percorso. Verranno restituiti solo gli oggetti il cui percorso completo inizia
lessicograficamente dopo l'indicatore esclusivo. Il file utilizzato come "marcatore" non viene restituito. Ad esempio, se vuoi che vengano elencati tutti i file elencati a partire da
superduperfoo3.txt
, devi specificare il file immediatamente precedente asuperduperfoo3.txt
, ad esempio:stat = cloudstorage.listbucket("/my_bucket/foo", marker='/my_bucket/foo/superduperfoo2.txt')
Un modo per utilizzare questo parametro è usarlo conmax_keys
per eseguire il "page-through" dei nomi di file dei bucket. - max_keys= Nessuno (facoltativo)
- Numero intero. Specifica il numero massimo di oggetti da restituire. Utilizzala se sai quanti oggetti vuoi. In caso contrario, la libreria client di Cloud Storage esegue automaticamente il buffering e l'impaginazione di tutti i risultati. Può essere
utilizzato con
marker
per sfogliare i nomi file in un bucket.stats = cloudstorage.listbucket(bucket + '/foo', max_keys=page_size, marker=stat.filename)
- delimitatore= Nessuno (facoltativo)
- Stringa. Attiva la modalità directory. Puoi specificare uno o più caratteri da utilizzare come separatore di directory.
- retry_params= Nessuno (Facoltativo)
- Un oggetto RetryParams in cui fornisci le modifiche che vuoi apportare al timeout predefinito e riprova a configurare le impostazioni per questa chiamata.
Valore risultato
Restituisce un iteratore degli oggetti GCSFileStat sopra i file corrispondenti, ordinati per nome file. In modalità regolare, gli oggetti
GCSFileStat
restituiti hanno i seguenti dati:filename
etag
(la rappresentazione esadecimale dell'hash MD5 dei contenuti del file)st_size
(lunghezza dei contenuti delle intestazioni)st_ctime
is_dir
Nota: se la proprietà
is_dir
dell'oggettoGCSFileStat
èTrue
, l'unica altra proprietà dell'oggetto èfilename
. Seis_dir
èFalse
,GCSFileStat
contiene anche tutte le altre proprietà. - cloudstorage.open(filename, mode='r', content_type=Nessuno, options=Nessuno, read_buffer_size=storage_api.ReadBuffer.DEFAULT_BUFFER_SIZE, retry_params=Nessuno)
-
In modalità di lettura (
r
) apre l'oggetto Cloud Storage specificato per la lettura. In modalità di scritturaw
, se il file specificato esiste, lo apre per una sovrascrittura (l'aggiunta non è supportata). Se il file non esiste, viene creato nel bucket specificato.Al termine della scrittura, se vuoi leggere il file e/o archiviarlo in Cloud Storage, chiudi il file utilizzando la funzione
close
. Non è un errore se non chiamiclose
, ma il file non sarà leggibile o permanente in Cloud Storage.Aumenti:
- cloudstorage.NotFoundError se in modalità di lettura e l'oggetto specificato non esiste.
Argomenti
- filename (obbligatorio)
- Il file da aprire nel formato
/bucket/object
. Ad esempio:/my_bucket/lyrics/southamerica/list5.txt
. - mode (facoltativo)
- Stringa. Specifica 'r' per aprire un file in lettura (impostazione predefinita). Specifica 'w' per aprire un file esistente da sovrascrivere o per crearne uno nuovo.
- content_type: (facoltativo)
- Stringa. Utilizzata solo in modalità scrittura. Devi specificare il tipo MIME del file (puoi specificare qualsiasi tipo MIME valido). Se non fornisci questo valore, per impostazione predefinita Cloud Storage utilizzerà il tipo
binary/octet-stream
quando pubblica l'oggetto. - options: (facoltativo)
Dettatura Utilizzata solo in modalità scrittura. Le opzioni supportate sono
x-goog-acl
,x-goog-meta-
,cache-control
,content-disposition
econtent-encoding
.Se non fornisci un'opzione
x-goog-acl
, Cloud Storage utilizza l'ACL predefinito del bucket. I valori validi dix-goog-acl
sono elencati nella documentazione di Cloud Storage per x-goog-acl.Puoi specificare i metadati degli oggetti personalizzati utilizzando le intestazioni x-goog-meta-. Ad esempio:
gcs_file = cloudstorage.open(filename, 'w', content_type='text/plain', options={'x-goog-acl': 'private','x-goog-meta-foo': 'foo', 'x-goog-meta-bar': 'bar'})
- read_buffer_size: (facoltativo)
- Numero intero. Utilizzata solo in modalità lettura. Se non imposti questo valore,
viene utilizzata la dimensione del buffer predefinita (consigliata). Durante la lettura, dovresti
leggere entro
read_buffer_size
per ottenere prestazioni di precaricamento ottimali. - retry_params= Nessuno (Facoltativo)
- Un oggetto RetryParams in cui fornisci le modifiche che vuoi apportare al timeout predefinito e riprova a configurare le impostazioni per questa chiamata.
Valore risultato
Restituisce un buffer di lettura o scrittura che supporta un'interfaccia simile a un file sulla quale puoi richiamare le funzioni Python standard
read
,write
eclose
. Questo buffer deve essere chiuso al termine della lettura o della scrittura. - cloudstorage.stat(nomefile, retry_params=Nessuno)
-
Restituisce un oggetto GCSFileStat contenente metadati di file.
Genera cloudstorage.NotFoundError se l'oggetto Cloud Storage specificato non esiste.
Argomenti
- filename (obbligatorio)
- Il file da aprire nel formato
/bucket/object
. Ad esempio:/my_bucket/lyrics/southamerica/list5.txt
- retry_params= Nessuno (Facoltativo)
- Un oggetto RetryParams in cui fornisci le modifiche che vuoi apportare al timeout predefinito e riprova a configurare le impostazioni per questa chiamata.
Valore risultato
Restituisce un oggetto GCSFileStat contenente metadati di file.