Endpoint di richiesta

Questa pagina illustra i diversi endpoint di richiesta che puoi utilizzare per accedere di archiviazione ideale in Cloud Storage. Cloud Storage supporta HTTP/1.1, HTTP/2 e HTTP/3 protocolli. Un endpoint è la posizione in cui Cloud Storage può a cui si accede, scritto come un URL.

Richieste API tipiche

API JSON

Quando effettui richieste API JSON direttamente a Cloud Storage, utilizza i seguenti endpoint:

  • Per le richieste API JSON generali, esclusi i caricamenti di oggetti, utilizza il metodo successivo endpoint, in sostituzione di PATH_TO_RESOURCE con il valore appropriato:

    https://storage.googleapis.com/storage/v1/PATH_TO_RESOURCE
  • Per i caricamenti di oggetti API JSON, utilizza il seguente endpoint, sostituendo BUCKET_NAME con il valore appropriato:

    https://storage.googleapis.com/upload/storage/v1/b/BUCKET_NAME/o
  • Per le richieste in batch, utilizza il seguente endpoint, sostituendo PATH_TO_RESOURCE con il valore appropriato:

    https://storage.googleapis.com/batch/storage/v1/PATH_TO_RESOURCE
  • Facoltativamente, per i download di oggetti API JSON, puoi utilizzare quanto segue sostituendo BUCKET_NAME e OBJECT_NAME con i valori appropriati:

    https://storage.googleapis.com/download/storage/v1/b/BUCKET_NAME/o/OBJECT_NAME?alt=media

Gli endpoint dell'API JSON accettano solo richieste HTTPS.

API XML

Quando effettui richieste API XML direttamente a Cloud Storage, Usare l'endpoint virtual hosting-style o path-style, sostituendo BUCKET_NAME e OBJECT_NAME con i valori appropriati:

  • Endpoint con stile ospitato virtuale:

    https://BUCKET_NAME.storage.googleapis.com/OBJECT_NAME

  • Endpoint di tipo percorso:

    https://storage.googleapis.com/BUCKET_NAME/OBJECT_NAME

di Gemini Advanced.

Gli endpoint API XML supportano la crittografia SSL (Secure Sockets Layer), puoi utilizzare HTTP o HTTPS. È consigliabile utilizzare HTTPS, soprattutto se devi eseguire l'autenticazione in Cloud Storage utilizzando OAuth 2.0.

Per le connessioni tramite proxy, consulta l'argomento relativo alla risoluzione dei problemi per pratiche consigliate.

Codifica di parti del percorso dell'URL

Oltre alle considerazioni generali sulla nome dei bucket e nome degli oggetti, per garantire la compatibilità tra Cloud Storage di testo, devi codificare i caratteri riportati di seguito quando vengono visualizzati il nome dell'oggetto o la stringa di query di un URL di richiesta:

!, #, $, &, ', (, ), *, , ,, /, :, ;, = e ?, @, [, ] e spazi.

Ad esempio, se invii una richiesta GET dell'API JSON per l'oggetto denominato foo??bar nel bucket example-bucket, l'URL della richiesta dovrebbe essere:

GET https://storage.googleapis.com/storage/v1/b/example-bucket/o/foo??bar

Tieni presente che non tutti i caratteri elencati devono essere codificati in ogni scenario. Inoltre, la codifica viene generalmente gestita dalle librerie client, come librerie client di Cloud Storage per passare i dati quando si utilizzano questi strumenti.

Per ulteriori informazioni sull'uso della codifica percentuale, vedi Sezione 3.3 Percorso nel documento RFC 3986.

Endpoint della console Google Cloud

Quando utilizzi la console Google Cloud, accedi a diverse risorse utilizzando i seguenti URL:

Risorsa URL
Elenco di bucket per un progetto https://console.cloud.google.com/storage/browser?project=PROJECT_ID
Elenco degli oggetti per un bucket https://console.cloud.google.com/storage/browser/BUCKET_NAME
Dettagli relativi a un oggetto https://console.cloud.google.com/storage/browser/_details/BUCKET_NAME/OBJECT_NAME
Dati per un oggetto Vedi Download da browser autenticati

gcloud endpoints

I comandi gcloud storage utilizzano gli endpoint API JSON. L'utilizzo dell'endpoint è gestiti per tuo conto tramite gcloud CLI.

Endpoint della libreria client

Le librerie client di Cloud Storage gestiscono automaticamente gli endpoint delle richieste. Se vuoi, puoi impostare manualmente l'endpoint della richiesta. Questo può essere utile quando vuoi utilizzare un endpoint specifico o per i test, ad esempio quando vuoi usa un emulatore locale:

C

Per ulteriori informazioni, consulta API Cloud Storage C documentazione di riferimento.

Per eseguire l'autenticazione su Cloud Storage, configura Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.

namespace g = ::google::cloud;
namespace gcs = ::google::cloud::storage;
[](std::string const& bucket_name, std::string const& object_name) {
  // NOTE: the CLOUD_STORAGE_EMULATOR_HOST environment variable overrides any
  //     value provided here.
  auto client = gcs::Client(g::Options{}.set<gcs::RestEndpointOption>(
      "https://storage.googleapis.com"));
  PerformSomeOperations(client, bucket_name, object_name);
}

C#

Per ulteriori informazioni, consulta API Cloud Storage C# documentazione di riferimento.

Per eseguire l'autenticazione su Cloud Storage, configura Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.

using Google.Cloud.Storage.V1;
using System;

public class SetClientEndpointSample
{
    public StorageClient SetClientEndpoint(string endpoint) = new St>orageClientBuilder
    {
        BaseUri = endpoint
    }.Build();
}

Go

Per ulteriori informazioni, consulta API Cloud Storage Go documentazione di riferimento.

Per eseguire l'autenticazione su Cloud Storage, configura Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.

import (
	"context"
	"fmt"
	"io"

	"cloud.google.com/go/storage"
	"google.golang.org/api/option"
)

// setClientEndpoint sets the request endpoint.
func setClientEndpoint(w io.Writer, customEndpoint string, opts ...option.ClientOption) error {
	// customEndpoint := "https://my-custom-endpoint.example.com/storage/v1/"
	// opts := []option.ClientOption{}
	ctx := context.Background()

	// Add the custom endpoint option to any other desired options passed to storage.NewClient.
	opts = append(opts, option.WithEndpoint(customEndpoint))
	client, err := storage.NewClient(ctx, opts...)
	if err != nil {
		return fmt.Errorf("storage.NewClient: %w", err)
	}
	defer client.Close()

	// Use the client as per your custom endpoint, for example, attempt to get a bucket's metadata.
	client.Bucket("bucket-name").Attrs(ctx)
	return nil
}

Java

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

Per eseguire l'autenticazione su Cloud Storage, configura Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.


import com.google.cloud.storage.Storage;
import com.google.cloud.storage.StorageOptions;

public class SetClientEndpoint {

  public static void setClientEndpoint(String projectId, String endpoint) {
    // The ID of your GCP project
    // String projectId = "your-project-id";

    // The endpoint you wish to target
    // String endpoint = "https://storage.googleapis.com"

    Storage storage =
        StorageOptions.newBuilder().setProjectId(projectId).setHost(endpoint).build().getService();

    System.out.println(
        "Storage Client initialized with endpoint "   storage.getOptions().getHost());
  }
}

Node.js

Per ulteriori informazioni, consulta API Cloud Storage Node.js documentazione di riferimento.

Per eseguire l'autenticazione su Cloud Storage, configura Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.

/**
 * TODO(developer): Uncomment the following lines before running the sample.
 */
// The custom endpoint to which requests should be made
// const apiEndpoint = 'https://yourcustomendpoint.com';

// Imports the Google Cloud client library
const {Storage} = require('@google-cloud/storage');

// Creates a client
const storage = new Storage({
  apiEndpoint: apiEndpoint,
  useAuthWithCustomEndpoint: true,
});

console.log(`Client initiated with endpoint: ${storage.apiEndpoint}.`);

PHP

Per ulteriori informazioni, consulta API Cloud Storage PHP documentazione di riferimento.

Per eseguire l'autenticazione su Cloud Storage, configura Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.

use Google\Cloud\Storage\StorageClient;

/**
 * Sets a custom endpoint for storage client.
 *
 * @param string $projectId The ID of your Google Cloud Platform project.
 *        (e.g. 'my-project-id')
 * @param string $endpoint The endpoint for storage client to target.
 *        (e.g. 'https://storage.googleapis.com')
 */
function set_client_endpoint(
    string $projectId,
    string $endpoint
): void {
    $storage = new StorageClient([
        'projectId' => $projectId,
        'apiEndpoint' => $endpoint,
    ]);

    // fetching apiEndpoint and baseUri from StorageClient is excluded for brevity
    # ...
    print('Storage Client initialized.' . PHP_EOL);
}

Python

Per ulteriori informazioni, consulta API Cloud Storage Python documentazione di riferimento.

Per eseguire l'autenticazione su Cloud Storage, configura Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.


from google.cloud import storage


def set_client_endpoint(api_endpoint):
    """Initiates client with specified endpoint."""
    # api_endpoint = 'https://storage.googleapis.com'

    storage_client = storage.Client(client_options={'api_endpoint': api_endpoint})

    print(f"client initiated with endpoint: {storage_client._connection.API_BASE_URL}")

    return storage_client

Ruby

Per ulteriori informazioni, consulta API Cloud Storage Ruby documentazione di riferimento.

Per eseguire l'autenticazione su Cloud Storage, configura Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.

# api_endpoint = "https://storage.googleapis.com"

require "google/cloud/storage"

storage = Google::Cloud::Storage.new(
  endpoint: api_endpoint
)

puts "Client initiated with endpoint #{storage.service.service.root_url}"

Domini personalizzati

Se possiedi un dominio, puoi mapparne gli URI su uno o più servizi Google Cloud, inclusi i bucket Cloud Storage. Il termine nome host associato al bucket a volte viene utilizzato per descrivere Endpoint della richiesta di Cloud Storage. Per connettere un dominio personalizzato a un bucket Cloud Storage, devi creare un reindirizzamento A o CNAME il tuo record DNS.

A record

Quando connetti un dominio personalizzato a un bucket Cloud Storage, in genere dovrebbe usare un record A.

  • I record A supportano richieste di tipo HTTPS.
  • È possibile utilizzare i record A per inviare il traffico proveniente da un singolo nome host a più bucket, oltre che ad altri servizi Google Cloud.
  • I record A non applicano alcuna limitazione al nome del bucket.

Lo svantaggio dell'utilizzo dei record A è che richiedono una configurazione aggiuntiva e l'utilizzo di altre risorse Google Cloud. Consulta Configurazione del bilanciatore del carico e del certificato SSL per fornire una guida all'utilizzo domini personalizzati con record A.

CNAME record

Quando connetti un dominio personalizzato a un bucket Cloud Storage, puoi: usa un record CNAME, ma tieni presente che questa operazione presenta alcune limitazioni:

  • I record CNAME supportano solo richieste HTTP.
  • I record CNAME possono indirizzare il traffico solo da un determinato nome host a un singolo di sincronizzare la directory di una VM con un bucket.
  • I record CNAME richiedono il nome host e il nome del bucket associato per e devi convalidare il nome del bucket.
  • I record CNAME possono essere utilizzati solo per i sottodomini, ad esempio www.mydomain.com, su domini di primo livello come mydomain.com.

Quando utilizzi i record CNAME, la parte del nome host del record CNAME deve essere impostato nel seguente modo:

c.storage.googleapis.com.

Ad esempio, supponiamo che il tuo dominio sia example.com e voglia creare mappe di viaggio disponibili per i tuoi clienti. Puoi creare un bucket in Cloud Storage denominato travel-maps.example.com, quindi creare un record CNAME in DNS reindirizza le richieste da travel-maps.example.com a Cloud Storage URI. Per farlo, pubblica il seguente record CNAME in DNS:

NAME                      TYPE     DATA
travel-maps               CNAME    c.storage.googleapis.com.

In questo modo, i clienti possono utilizzare il seguente URL per accedere a una mappa Parigi:

http://travel-maps.example.com/paris.jpg

Il servizio di registrazione del dominio dovrebbe avere un modo per amministrare dominio, inclusa l'aggiunta di un record di risorse CNAME. Ad esempio, se utilizzi Cloud DNS, trovi le istruzioni per aggiungere record di risorse Nella pagina Aggiungi, modifica ed elimina i record.

Download da browser autenticati

I download del browser autenticati utilizzano l'autenticazione basata sui cookie. In base ai cookie di autenticazione richiede agli utenti di accedere al proprio account utente per stabilire una e identità di base. L'account specificato deve disporre delle autorizzazioni appropriate per scaricare l'account . Ad esempio, se utilizzi Identity and Access Management per controllare l'accesso ai tuoi , l'account dell'utente deve avere l'autorizzazione storage.objects.viewer, che è concesso nel ruolo Visualizzatore oggetti Storage.

Per scaricare un oggetto utilizzando l'autenticazione basata su cookie, usa il seguente URL: sostituzione di BUCKET_NAME e OBJECT_NAME con i valori appropriati:

https://storage.cloud.google.com/BUCKET_NAME/OBJECT_NAME

Ad esempio, se hai condiviso un'immagine london.jpg dal tuo bucket example-maps, l'URL sarebbe:

https://storage.cloud.google.com/example-maps/london.jpg

Una volta eseguito l'accesso, il sistema ti reindirizzerà ai contenuti richiesti. La L'URL di questi contenuti inizia con una sequenza alfanumerica e contiene la sezione stringa /download/storage/v1/b/BUCKET_NAME/o/OBJECT_NAME

L'utilizzo del protocollo HTTPS è obbligatorio quando si eseguono download autenticati dal browser. tenta di utilizzare il reindirizzamento HTTP a HTTPS.

Accesso agli oggetti pubblici

Tutte le richieste all'URI storage.cloud.google.com richiedono l'autenticazione. Questo si applica anche se allUsers dispone dell'autorizzazione per accedere a un oggetto. Se vuoi per scaricare oggetti accessibili in modo anonimo senza eseguire l'autenticazione, utilizza Endpoint stile percorso API XML:

https://storage.googleapis.com/BUCKET_NAME/OBJECT_NAME

Per dettagli ed esempi, vedi Accesso ai dati pubblici.

Passaggi successivi