Questa pagina mostra come copiare, rinominare e spostare oggetti all'interno e tra i bucket in Cloud Storage.
Tieni presente che sebbene alcuni strumenti di Cloud Storage facciano sembrare che un oggetto sposti o rinomini un'operazione univoca, si tratta sempre di un'operazione di copia seguita da un'operazione di eliminazione dell'oggetto originale, dal momento che gli oggetti sono immutabili.
Autorizzazioni obbligatorie
Console
Per completare questa guida utilizzando la console Google Cloud, devi disporre delle autorizzazioni IAM appropriate. Se i bucket a cui vuoi accedere sono presenti in un progetto non creato da te, potrebbe essere necessario che il proprietario del progetto ti conceda un ruolo che contenga le autorizzazioni necessarie.
Per un elenco delle autorizzazioni necessarie per azioni specifiche, consulta Autorizzazioni IAM per la console Google Cloud.
Per un elenco dei ruoli pertinenti, consulta Ruoli di Cloud Storage. In alternativa, puoi creare un ruolo personalizzato con autorizzazioni specifiche e limitate.
Riga di comando
Per completare questa guida utilizzando un'utilità a riga di comando, devi disporre delle autorizzazioni IAM appropriate. Se i bucket a cui vuoi accedere esistono in un progetto non creato da te, potrebbe essere necessario che il proprietario del progetto ti conceda un ruolo che contenga le autorizzazioni necessarie.
Per un elenco delle autorizzazioni necessarie per azioni specifiche, consulta Autorizzazioni IAM per i comandi gcloud storage
.
Per un elenco dei ruoli pertinenti, consulta Ruoli di Cloud Storage. In alternativa, puoi creare un ruolo personalizzato con autorizzazioni specifiche e limitate.
Librerie client
Per completare questa guida utilizzando le librerie client di Cloud Storage, devi disporre delle autorizzazioni IAM appropriate. Se i bucket a cui vuoi accedere sono presenti in un progetto non creato da te, potrebbe essere necessario che il proprietario del progetto ti conceda un ruolo che contenga le autorizzazioni necessarie.
Se non diversamente indicato, le richieste di libreria client vengono effettuate tramite l'API JSON e richiedono le autorizzazioni elencate nelle autorizzazioni IAM per i metodi JSON. Per vedere quali metodi dell'API JSON vengono richiamati quando effettui richieste utilizzando una libreria client, registra le richieste non elaborate.
Per un elenco dei ruoli IAM pertinenti, consulta Ruoli di Cloud Storage. In alternativa, puoi creare un ruolo personalizzato con autorizzazioni specifiche e limitate.
API REST
API JSON
Per completare questa guida utilizzando l'API JSON, devi disporre delle autorizzazioni IAM appropriate. Se i bucket a cui vuoi accedere esistono in un progetto non creato da te, potrebbe essere necessario che il proprietario del progetto ti conceda un ruolo che contiene le autorizzazioni necessarie.
Per un elenco delle autorizzazioni necessarie per azioni specifiche, consulta Autorizzazioni IAM per i metodi JSON.
Per un elenco dei ruoli pertinenti, consulta Ruoli di Cloud Storage. In alternativa, puoi creare un ruolo personalizzato con autorizzazioni specifiche e limitate.
Copiare un oggetto
Per copiare un oggetto in uno dei bucket Cloud Storage:
Console
- Nella console Google Cloud, vai alla pagina Bucket di Cloud Storage.
Nell'elenco dei bucket, fai clic sul nome del bucket che contiene l'oggetto da copiare.
Viene visualizzata la pagina Dettagli bucket con la scheda Oggetti selezionata.
Vai all'oggetto, che potrebbe trovarsi in una cartella.
Fai clic sul menu overflow dell'oggetto (more_vert) associato all'oggetto.
Fai clic su Copia.
Viene visualizzato il riquadro Copia oggetto.
Nel campo Destinazione, digita il nome del bucket di destinazione e il nome dell'oggetto copiato.
In alternativa, puoi fare clic su Sfoglia per selezionare la destinazione, ma le opzioni di navigazione sono limitate ai bucket del progetto attuale.
Fai clic su Copia.
Per scoprire come ottenere informazioni dettagliate sugli errori relativi alle operazioni di Cloud Storage non riuscite nella console Google Cloud, consulta Risoluzione dei problemi.
Riga di comando
Utilizza il comando gcloud storage cp
:
gcloud storage cp gs://SOURCE_BUCKET_NAME/SOURCE_OBJECT_NAME gs://DESTINATION_BUCKET_NAME/NAME_OF_COPY
Dove:
SOURCE_BUCKET_NAME
è il nome del bucket che contiene l'oggetto che vuoi copiare. Ad esempio,my-bucket
.SOURCE_OBJECT_NAME
è il nome dell'oggetto che vuoi copiare. Ad esempio,pets/dog.png
.DESTINATION_BUCKET_NAME
è il nome del bucket in cui vuoi copiare l'oggetto. Ad esempio,another-bucket
.NAME_OF_COPY
è il nome che vuoi assegnare alla copia dell'oggetto. Ad esempio,shiba.png
.
In caso di esito positivo, la risposta è simile al seguente esempio:
Copying gs://example-bucket/file.txt to gs://other-bucket/file-copy.txt Completed files 1/1 | 164.3kiB/164.3kiB
Librerie client
C++
Per maggiori informazioni, consulta la documentazione di riferimento dell'API C++ di Cloud Storage.
Per eseguire l'autenticazione in Cloud Storage, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
C#
Per maggiori informazioni, consulta la documentazione di riferimento dell'API C# di Cloud Storage.
Per eseguire l'autenticazione in Cloud Storage, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Go
Per maggiori informazioni, consulta la documentazione di riferimento dell'API Go di Cloud Storage.
Per eseguire l'autenticazione in Cloud Storage, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Java
Per maggiori informazioni, consulta la documentazione di riferimento dell'API Java di Cloud Storage.
Per eseguire l'autenticazione in Cloud Storage, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Node.js
Per maggiori informazioni, consulta la documentazione di riferimento dell'API Node.js di Cloud Storage.
Per eseguire l'autenticazione in Cloud Storage, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
PHP
Per maggiori informazioni, consulta la documentazione di riferimento dell'API PHP di Cloud Storage.
Per eseguire l'autenticazione in Cloud Storage, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Python
Per maggiori informazioni, consulta la documentazione di riferimento dell'API Python di Cloud Storage.
Per eseguire l'autenticazione in Cloud Storage, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Ruby
Per maggiori informazioni, consulta la documentazione di riferimento dell'API Ruby di Cloud Storage.
Per eseguire l'autenticazione in Cloud Storage, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
API REST
API JSON
Assicurati che gcloud CLI sia installato e inizializzatoper generare un token di accesso per l'intestazione
Authorization
.In alternativa, puoi creare un token di accesso utilizzando OAuth 2.0 Playground e includerlo nell'intestazione
Authorization
.Utilizza
cURL
per chiamare l'API JSON con una richiestaPOST
oggetto:curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Length: 0" \ "https://storage.googleapis.com/storage/v1/b/SOURCE_BUCKET_NAME/o/SOURCE_OBJECT_NAME/rewriteTo/b/DESTINATION_BUCKET_NAME/o/NAME_OF_COPY"
Dove:
SOURCE_BUCKET_NAME
è il nome del bucket contenente l'oggetto che vuoi copiare. Ad esempio,my-bucket
.SOURCE_OBJECT_NAME
è il nome con codifica URL dell'oggetto che vuoi copiare. Ad esempio,pets/dog.png
, con codifica URL comepets%2Fdog.png
.DESTINATION_BUCKET_NAME
è il nome del bucket in cui vuoi copiare l'oggetto. Ad esempio,another-bucket
.NAME_OF_COPY
è il nome con codifica URL che vuoi assegnare alla copia dell'oggetto. Ad esempio,shiba.png
.
Poiché il metodo
rewrite
copia i dati in blocchi di dimensioni limitate, la copia potrebbe richiedere più richieste, soprattutto per gli oggetti di grandi dimensioni.Ad esempio, la seguente risposta a una richiesta
rewrite
indica che devi effettuare ulteriori richiesterewrite
:{ "kind": "storage#rewriteResponse", "totalBytesRewritten": 1048576, "objectSize": 10000000000, "done": false, "rewriteToken": TOKEN_VALUE }
Utilizza
rewriteToken
in una richiesta successiva per continuare a copiare i dati:curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Length: 0" \ -d '{"rewriteToken": "TOKEN_VALUE"}' \ "https://storage.googleapis.com/storage/v1/b/SOURCE_BUCKET_NAME/o/SOURCE_OBJECT_NAME/rewriteTo/b/DESTINATION_BUCKET_NAME/o/NAME_OF_COPY"
Dove:
TOKEN_VALUE
è il valorerewriteToken
restituito nella richiesta precedente.- Tutti gli altri valori corrispondono a quelli utilizzati nella richiesta precedente.
Quando l'oggetto è stato copiato per intero, l'ultima risposta ha una proprietà
done
impostata sutrue
, non esiste alcuna proprietàrewriteToken
e i metadati della copia sono inclusi nella proprietàresource
.{ "kind": "storage#rewriteResponse", "totalBytesRewritten": 10000000000, "objectSize": 10000000000, "done": true, "resource": objects Resource }
API XML
Assicurati che gcloud CLI sia installato e inizializzatoper generare un token di accesso per l'intestazione
Authorization
.In alternativa, puoi creare un token di accesso utilizzando OAuth 2.0 Playground e includerlo nell'intestazione
Authorization
.Utilizza
cURL
per chiamare l'API XML con una richiestaPUT
oggetto:curl -X PUT \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "x-goog-copy-source: SOURCE_BUCKET_NAME/SOURCE_OBJECT_NAME" \ "https://storage.googleapis.com/DESTINATION_BUCKET_NAME/NAME_OF_COPY"
Dove:
SOURCE_BUCKET_NAME
è il nome del bucket contenente l'oggetto che vuoi copiare. Ad esempio,my-bucket
.SOURCE_OBJECT_NAME
è il nome dell'oggetto da copiare. Ad esempio,pets/dog.png
.DESTINATION_BUCKET_NAME
è il nome del bucket in cui vuoi copiare l'oggetto. Ad esempio,another-bucket
.NAME_OF_COPY
è il nome con codifica URL che vuoi assegnare alla copia dell'oggetto. Ad esempio,shiba.png
.
Spostare o rinominare un oggetto
Per spostare un oggetto in Cloud Storage tra i bucket o per rinominare un oggetto all'interno di un bucket:
Console
- Nella console Google Cloud, vai alla pagina Bucket di Cloud Storage.
Nell'elenco dei bucket, fai clic sul nome del bucket che contiene l'oggetto da spostare o rinominare.
Viene visualizzata la pagina Dettagli bucket con la scheda Oggetti selezionata.
Vai all'oggetto, che potrebbe trovarsi in una cartella.
Fai clic sul menu overflow dell'oggetto (more_vert) associato all'oggetto.
Se vuoi assegnare un nuovo nome all'oggetto nello stesso bucket, fai clic su Rinomina.
Nella finestra overlay che viene visualizzata, inserisci un nuovo nome per l'oggetto.
Fai clic su Rinomina.
Se vuoi spostare l'oggetto in un altro bucket, fai clic su Sposta.
Nella finestra dell'overlay che viene visualizzata, fai clic su Sfoglia.
Seleziona la destinazione dell'oggetto che stai spostando.
Fai clic su Seleziona.
Fai clic su Sposta.
Per scoprire come ottenere informazioni dettagliate sugli errori relativi alle operazioni di Cloud Storage non riuscite nella console Google Cloud, consulta Risoluzione dei problemi.
Riga di comando
Utilizza il comando gcloud storage mv
:
gcloud storage mv gs://SOURCE_BUCKET_NAME/SOURCE_OBJECT_NAME gs://DESTINATION_BUCKET_NAME/DESTINATION_OBJECT_NAME
Dove:
SOURCE_BUCKET_NAME
è il nome del bucket che contiene l'oggetto che vuoi spostare o rinominare. Ad esempio,my-bucket
.SOURCE_OBJECT_NAME
è il nome dell'oggetto che vuoi spostare o rinominare. Ad esempio,pets/dog.png
.DESTINATION_BUCKET_NAME
è il nome del bucket in cui è archiviato l'oggetto spostato o rinominato. Ad esempio,another-bucket
.DESTINATION_OBJECT_NAME
è il nome che vuoi assegnare all'oggetto dopo lo spostamento o la ridenominazione. Ad esempio,shiba.png
.
In caso di esito positivo, la risposta è simile al seguente esempio:
Copying gs://example-bucket/old-file.txt to gs://new-bucket/new-file.txt Removing gs://example-bucket/old-file.txt... Completed files 1/1 | 164.3kiB/164.3kiB
Librerie client
C++
Per maggiori informazioni, consulta la documentazione di riferimento dell'API C++ di Cloud Storage.
Per eseguire l'autenticazione in Cloud Storage, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
C#
Per maggiori informazioni, consulta la documentazione di riferimento dell'API C# di Cloud Storage.
Per eseguire l'autenticazione in Cloud Storage, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Go
Per maggiori informazioni, consulta la documentazione di riferimento dell'API Go di Cloud Storage.
Per eseguire l'autenticazione in Cloud Storage, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Java
Per maggiori informazioni, consulta la documentazione di riferimento dell'API Java di Cloud Storage.
Per eseguire l'autenticazione in Cloud Storage, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Node.js
Per maggiori informazioni, consulta la documentazione di riferimento dell'API Node.js di Cloud Storage.
Per eseguire l'autenticazione in Cloud Storage, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
PHP
Per maggiori informazioni, consulta la documentazione di riferimento dell'API PHP di Cloud Storage.
Per eseguire l'autenticazione in Cloud Storage, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Python
Per maggiori informazioni, consulta la documentazione di riferimento dell'API Python di Cloud Storage.
Per eseguire l'autenticazione in Cloud Storage, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Ruby
Per maggiori informazioni, consulta la documentazione di riferimento dell'API Ruby di Cloud Storage.
Per eseguire l'autenticazione in Cloud Storage, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
API REST
API JSON
Per spostare o rinominare un oggetto utilizzando direttamente l'API JSON, devi prima creare una copia dell'oggetto con le proprietà che vuoi e poi eliminare l'oggetto originale.
API XML
Per spostare o rinominare un oggetto utilizzando direttamente l'API XML, devi prima creare una copia dell'oggetto con le proprietà che vuoi e poi eliminare l'oggetto originale.
Ti consigliamo di utilizzare Storage Transfer Service per spostare più di 1 TB di dati tra i bucket.
Passaggi successivi
- Modifica la classe di archiviazione di un oggetto.
- Modifica i metadati di un oggetto.
- Rendi oggetti e bucket accessibili pubblicamente.
- Scopri di più sui requisiti di denominazione degli oggetti.
- Scopri di più sull'utilizzo delle precondizioni della richiesta per evitare le gare con condizioni.