Creare e gestire cartelle gestite

Questa guida descrive come creare, elencare ed eliminare le cartelle gestite.

Prima di iniziare

Prima di iniziare, assicurati di disporre del ruolo Identity and Access Management (IAM) richiesto per creare e gestire le cartelle gestite e abilitare l'accesso uniforme a livello di bucket.

Ottieni i ruoli richiesti

Per ottenere le autorizzazioni necessarie per creare e gestire le cartelle gestite, chiedi all'amministratore di concederti il ruolo IAM Amministratore cartelle Storage (roles/storage.folderAdmin) per il bucket.

Questo ruolo predefinito contiene le autorizzazioni necessarie per creare e gestire le cartelle gestite. Per visualizzare con esattezza le autorizzazioni necessarie, espandi la sezione Autorizzazioni obbligatorie:

Autorizzazioni obbligatorie

  • storage.managedfolders.create
  • storage.managedfolders.delete
  • storage.managedfolders.get
  • storage.managedfolders.list
  • storage.objects.list
    • Questa autorizzazione è richiesta solo se vuoi convalidare le cartelle gestite appena create elencandole.

Puoi ottenere queste autorizzazioni anche con altri ruoli predefiniti o ruoli personalizzati.

Per informazioni sulla concessione dei ruoli sui bucket, consulta Utilizzare IAM con i bucket.

Abilita l'accesso uniforme a livello di bucket

Se non lo hai già fatto, abilita l'accesso uniforme a livello di bucket.

Crea una cartella gestita

Console

Quando utilizzi la console Google Cloud, puoi creare cartelle gestite convertendo cartelle simulate. I passaggi seguenti spiegano come creare una cartella simulata e convertirla in una cartella gestita.

  1. Nella console Google Cloud, vai alla pagina Bucket di Cloud Storage.

    Vai a Bucket

  2. Nell'elenco dei bucket, fai clic sul nome del bucket in cui vuoi creare le cartelle gestite.

  3. Nella pagina Dettagli bucket, fai clic su Crea cartella per creare una nuova cartella. Se la cartella da convertire in una cartella gestita esiste già, vai al passaggio che descrive come accedere al menu Altre opzioni .

  4. Nel campo Nome, inserisci un nome per la cartella. Per considerazioni sulla denominazione, vedi Nomi delle cartelle gestite.

  5. Fai clic su Crea.

    La cartella appena creata viene visualizzata nel riquadro Browser cartelle.

  6. Nel riquadro Browser cartelle, fai clic sul menu Altre opzioni accanto alla cartella da convertire in cartella gestita e fai clic su Modifica accesso.

    Viene visualizzata la finestra di dialogo Crea cartella gestita.

  7. Fai clic su Allega cartella gestita.

    La tua cartella viene convertita in una cartella gestita. Viene visualizzato il riquadro Autorizzazioni per MANAGED_FOLDER_NAME che mostra i criteri IAM sulla cartella per entità e ruolo. Per creare nuovi criteri IAM, consulta Impostare un criterio IAM su una cartella gestita.

Riga di comando

Per creare una cartella gestita, esegui il comando gcloud storage managed-folders create:

gcloud storage managed-folders create gs://BUCKET_NAME/MANAGED_FOLDER_NAME

Dove:

  • BUCKET_NAME è il nome del bucket in cui vuoi creare una cartella gestita. Ad esempio, my-bucket.

  • MANAGED_FOLDER_NAME è il nome della cartella gestita che vuoi creare. Ad esempio, my-managed-folder/.

Per confermare che la cartella gestita è stata creata, esegui il comando gcloud storage managed-folders describe:

gcloud storage managed-folders describe gs://BUCKET_NAME/MANAGED_FOLDER_NAME

Dove:

  • BUCKET_NAME è il nome del bucket in cui hai creato una cartella gestita.

  • MANAGED_FOLDER_NAME è il nome della cartella gestita che hai creato.

Librerie client

Java

Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Java di Cloud Storage.

Per eseguire l'autenticazione su Cloud Storage, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.


import com.google.storage.control.v2.BucketName;
import com.google.storage.control.v2.CreateManagedFolderRequest;
import com.google.storage.control.v2.ManagedFolder;
import com.google.storage.control.v2.StorageControlClient;

public class CreateManagedFolder {
  public static void managedFolderCreate(String bucketName, String managedFolderId)
      throws Exception {

    // Instantiates a client in a try-with-resource to automatically cleanup underlying resources
    try (StorageControlClient storageControlClient = StorageControlClient.create()) {
      CreateManagedFolderRequest request =
          CreateManagedFolderRequest.newBuilder()
              // Set project to "_" to signify global bucket
              .setParent(BucketName.format("_", bucketName))
              .setManagedFolder(ManagedFolder.newBuilder().build())
              .setManagedFolderId(managedFolderId)
              .build();
      String response = storageControlClient.createManagedFolder(request).getName();
      System.out.printf("Performed createManagedFolder request for %s%n", response);
    }
  }
}

API REST

API JSON

  1. Installa e inizializzatogcloud CLI per 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.

  2. Utilizza cURL per chiamare l'API JSON con una richiesta POST ManagedCartelle:

    curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -d '{ "name": "MANAGED_FOLDER_NAME" }' \
      "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/managedFolders"

    Dove:

    • BUCKET_NAME è il nome del bucket in cui vuoi creare una cartella gestita. Ad esempio, my-bucket.

    • MANAGED_FOLDER_NAME è il nome della cartella gestita che vuoi creare. Ad esempio, my-managed-folder/.

Elenca cartelle gestite

Console

  1. Nella console Google Cloud, vai alla pagina Bucket di Cloud Storage.

    Vai a Bucket

  2. Dal riquadro Browser cartelle, utilizza il nodo di attivazione/disattivazione per espandere l'elenco di cartelle all'interno del tuo bucket.

Un elenco mostra le cartelle simulate e gestite nel tuo bucket.

Riga di comando

Per elencare le cartelle gestite, esegui il comando gcloud storage managed-folders list:

gcloud storage managed-folders list gs://BUCKET_NAME

Dove:

  • BUCKET_NAME è il nome del bucket che contiene le cartelle gestite da elencare. Ad esempio, my-bucket.

Tieni presente che puoi anche specificare un percorso cartella anziché il nome di un bucket. Ad esempio:

gcloud storage managed-folders list gs://my-bucket/folder/

Librerie client

Java

Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Java di Cloud Storage.

Per eseguire l'autenticazione su Cloud Storage, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.


import com.google.storage.control.v2.BucketName;
import com.google.storage.control.v2.ListManagedFoldersRequest;
import com.google.storage.control.v2.ManagedFolder;
import com.google.storage.control.v2.StorageControlClient;

class ListManagedFolders {

  public static void managedFolderList(String bucketName) throws Exception {
    // Instantiates a client in a try-with-resource to automatically cleanup underlying resources
    try (StorageControlClient storageControlClient = StorageControlClient.create()) {
      ListManagedFoldersRequest listManagedFoldersRequest =
          ListManagedFoldersRequest.newBuilder()
              // Set project to "_" to signify global bucket
              .setParent(BucketName.format("_", bucketName))
              .build();
      Iterable<ManagedFolder> managedFolders =
          storageControlClient.listManagedFolders(listManagedFoldersRequest).iterateAll();
      for (ManagedFolder folder : managedFolders) {
        System.out.printf("%s bucket has managed folder %s%n", bucketName, folder.getName());
      }
    }
  }
}

API REST

API JSON

  1. Installa e inizializzatogcloud CLI per 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.

  2. Utilizza cURL per chiamare l'API JSON con una richiesta di elencare le cartelle gestite:

    curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/managedFolders"

    dove BUCKET_NAME è il nome del bucket che contiene le cartelle gestite da elencare. Ad esempio, my-bucket.

Spostare una cartella gestita

Console

  1. Crea una nuova cartella gestita nel bucket di destinazione.

  2. Copia i criteri IAM dalla cartella gestita originale nel bucket di origine alla nuova cartella gestita nel bucket di destinazione.

  3. Copia gli oggetti dalla cartella gestita originale nel bucket di origine alla nuova cartella gestita nel bucket di destinazione.

  4. Elimina la cartella gestita originale dal bucket di origine.

Riga di comando

Per spostare le cartelle gestite e gli oggetti che contengono, esegui il comando gcloud storage mv con l'opzione --include-managed-folders:

gcloud storage mv --include-managed-folders gs://SOURCE_BUCKET_NAME/MANAGED_FOLDER_NAME gs://DESTINATION_BUCKET_NAME/MANAGED_FOLDER_NAME

Dove:

  • SOURCE_BUCKET è il nome del bucket originale. Ad esempio my-source-bucket`.

  • DESTINATION_BUCKET è il nome del bucket in cui stai spostando la cartella gestita. Ad esempio, my-destination-bucket.

  • MANAGED_FOLDER_NAME è il nome della cartella gestita che stai spostando. Ad esempio, my-managed-folder/.

API REST

API JSON

Per spostare le cartelle gestite da un bucket all'altro, completa questi passaggi:

  1. Crea una nuova cartella gestita nel bucket di destinazione.

  2. Copia i criteri IAM dalla cartella gestita originale nel bucket di origine alla nuova cartella gestita nel bucket di destinazione.

  3. Copia gli oggetti dalla cartella gestita originale nel bucket di origine alla nuova cartella gestita nel bucket di destinazione.

  4. Elimina la cartella gestita originale dal bucket di origine.

Elimina una cartella gestita

Console

  1. Nella console Google Cloud, vai alla pagina Bucket di Cloud Storage.

    Vai a Bucket

  2. Nella pagina Dettagli bucket, fai clic sull'icona Altre opzioni accanto alla cartella gestita da eliminare.

  3. Fai clic su Elimina cartella.

  4. Per confermare che vuoi eliminare la cartella gestita, digita DELETE nel campo Elimina.

  5. Fai clic su Elimina.

    La cartella gestita e i suoi contenuti, inclusi gli oggetti archiviati e altre cartelle gestite, vengono eliminati dal bucket Cloud Storage.

Riga di comando

Per eliminare una cartella gestita e gli oggetti che contiene, esegui il comando gcloud storage rm:

gcloud storage rm -r gs://BUCKET_NAME/MANAGED_FOLDER_NAME

Dove:

  • BUCKET_NAME è il nome del bucket che contiene la cartella gestita da eliminare. Ad esempio, my-bucket.

  • MANAGED_FOLDER_NAME è il nome della cartella gestita da eliminare. Ad esempio, my-managed-folder/.

Librerie client

Java

Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Java di Cloud Storage.

Per eseguire l'autenticazione su Cloud Storage, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

import com.google.storage.control.v2.BucketName;
import com.google.storage.control.v2.DeleteManagedFolderRequest;
import com.google.storage.control.v2.ManagedFolderName;
import com.google.storage.control.v2.StorageControlClient;

class DeleteManagedFolder {
  public static void managedFolderDelete(String bucketName, String managedFolderId)
      throws Exception {
    // Instantiates a client in a try-with-resource to automatically cleanup underlying resources
    try (StorageControlClient storageControlClient = StorageControlClient.create()) {
      // Set project to "_" to signify global bucket
      BucketName resourceBucketName = BucketName.of("_", bucketName);
      DeleteManagedFolderRequest deleteManagedFolderRequest =
          DeleteManagedFolderRequest.newBuilder()
              .setName(
                  ManagedFolderName.format(
                      resourceBucketName.getProject(),
                      resourceBucketName.getBucket(),
                      managedFolderId))
              .build();
      storageControlClient.deleteManagedFolder(deleteManagedFolderRequest);
      System.out.printf("Deleted Managed Folder %s%n", managedFolderId);
    }
  }
}

API REST

API JSON

Per eliminare una cartella gestita, devi prima eliminare gli oggetti all'interno della cartella gestita.

  1. Installa e inizializzatogcloud CLI per 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.

  2. Utilizza cURL per chiamare l'API JSON con una richiesta DELETE ManagedCartelle:

    curl -X DELETE -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/managedFolders/MANAGED_FOLDER_NAME"

    Dove:

    • BUCKET_NAME è il nome del bucket che contiene la cartella gestita da eliminare. Ad esempio, my-bucket.

    • MANAGED_FOLDER_NAME è il nome della cartella gestita da eliminare. Ad esempio, my-managed-folder/.

    Per impostazione predefinita, le cartelle gestite devono essere vuote prima di poter essere eliminate. Per eliminare una cartella gestita non vuota, includi allowNonEmpty=true come parametro di query nella tua richiesta.

Risoluzione dei problemi

Per informazioni sulla creazione e sulla gestione delle cartelle gestite, consulta la pagina Risoluzione dei problemi.

Passaggi successivi