Utilizzare i pagamenti a carico del richiedente

Panoramica

Questa pagina descrive come attivare e disattivare Pagamenti a carico del richiedente e come verificare se questa opzione è abilitata in un bucket.

Ruoli obbligatori

Per ottenere le autorizzazioni necessarie per impostare e gestire Requester Pays, chiedi all'amministratore di concederti il ruolo Storage Admin (roles.storage.Admin) sul progetto che contiene il bucket.

Questo ruolo contiene le autorizzazioni necessarie per impostare e gestire la funzionalità Richiedente paga. Per vedere quali sono esattamente le autorizzazioni richieste, espandi la sezione Autorizzazioni obbligatorie:

Autorizzazioni obbligatorie

  • storage.buckets.get
  • storage.buckets.update
  • resourcemanager.projects.createBillingAssignment
    • Questa autorizzazione è necessaria solo se non disponi di un account di fatturazione da utilizzare quando disattivi la funzionalità Richiedente paga. Per ulteriori informazioni, consulta Requisiti di utilizzo e accesso.

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

Per istruzioni sulla concessione dei ruoli nei progetti, consulta Concedere o revocare un ruolo.

Impostare i pagamenti a carico del richiedente

Per attivare o disattivare i pagamenti a carico del richiedente in un bucket:

Console

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

    Vai a Bucket

  2. Nell'elenco dei bucket, individua quello che vuoi impostare e la colonna Richiedente paga.

    Il valore nella colonna indica lo stato attuale di Richiedente paga per il bucket.

  3. Fai clic sullo stato attuale di Pagamenti a carico del richiedente per il bucket.

  4. Nella finestra visualizzata, fai clic su Attiva o Disattiva, a seconda dello stato che vuoi impostare per Richiedente paga.

Se attivata, nella colonna Pagamenti a carico del richiedente del bucket vengono visualizzati un cerchio verde e la dicitura On. Se disattivata, nella colonna vengono visualizzati un fumetto grigio e la dicitura Off.

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 buckets update con il flag appropriato:

gcloud storage buckets update gs://BUCKET_NAME FLAG

Dove:

  • BUCKET_NAME è il nome del bucket pertinente. Ad esempio, my-bucket.

  • FLAG è --requester-pays per attivare Requester Pays o --no-requester-pays per disattivarlo.

Se l'operazione ha esito positivo, la risposta è simile al seguente esempio:

Updating gs://my-bucket/...
  Completed 1  

Librerie client

C++

Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage C++.

Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura l'autenticazione per le librerie client.

Il seguente esempio abilita i pagamenti a carico del richiedente su un bucket:

namespace gcs = ::google::cloud::storage;
using ::google::cloud::StatusOr;
[](gcs::Client client, std::string const& bucket_name) {
  StatusOr<gcs::BucketMetadata> metadata = client.PatchBucket(
      bucket_name,
      gcs::BucketMetadataPatchBuilder().SetBilling(gcs::BucketBilling{true}));
  if (!metadata) throw std::move(metadata).status();

  std::cout << "Billing configuration for bucket " << metadata->name()
            << " is updated. The bucket now";
  if (!metadata->has_billing()) {
    std::cout << " has no billing configuration.\n";
  } else if (metadata->billing().requester_pays) {
    std::cout << " is configured to charge the caller for requests\n";
  } else {
    std::cout << " is configured to charge the project that owns the bucket"
              << " for requests.\n";
  }
}

Il seguente esempio disabilita i pagamenti a carico del richiedente in un bucket:

namespace gcs = ::google::cloud::storage;
using ::google::cloud::StatusOr;
[](gcs::Client client, std::string const& bucket_name,
   std::string const& billed_project) {
  StatusOr<gcs::BucketMetadata> metadata = client.PatchBucket(
      bucket_name,
      gcs::BucketMetadataPatchBuilder().SetBilling(gcs::BucketBilling{false}),
      gcs::UserProject(billed_project));
  if (!metadata) throw std::move(metadata).status();

  std::cout << "Billing configuration for bucket " << bucket_name
            << " is updated. The bucket now";
  if (!metadata->has_billing()) {
    std::cout << " has no billing configuration.\n";
  } else if (metadata->billing().requester_pays) {
    std::cout << " is configured to charge the caller for requests\n";
  } else {
    std::cout << " is configured to charge the project that owns the bucket"
              << " for requests.\n";
  }
}

C#

Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage C#.

Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura l'autenticazione per le librerie client.

Il seguente esempio abilita i pagamenti a carico del richiedente su un bucket:


using Google.Apis.Storage.v1.Data;
using Google.Cloud.Storage.V1;
using System;

public class EnableRequesterPaysSample
{
    public Bucket EnableRequesterPays(string bucketName = "your-unique-bucket-name")
    {
        var storage = StorageClient.Create();
        var bucket = storage.GetBucket(bucketName);
        bucket.Billing ??= new Bucket.BillingData();
        bucket.Billing.RequesterPays = true;
        bucket = storage.UpdateBucket(bucket);
        Console.WriteLine($"Requester pays requests have been enabled for bucket {bucketName}.");
        return bucket;
    }
}

Il seguente esempio disabilita i pagamenti a carico del richiedente in un bucket:


using Google.Apis.Storage.v1.Data;
using Google.Cloud.Storage.V1;
using System;

public class DisableRequesterPaysSample
{
    public Bucket DisableRequesterPays(
        string projectId = "your-project-id",
        string