Actualiza un servidor SFTP

Puedes actualizar los usuarios que tienen permiso para conectarse a un servidor de Cloud FTP actualizando la configuración de acceso del servidor. También puedes actualizar metadatos, como el nombre visible del servidor.

No puedes cambiar si un servidor es externo o interno después de crearlo.

Roles obligatorios

Para obtener el permiso que necesitas para actualizar un servidor SFTP, pídele a tu administrador que te otorgue el rol de IAM Administrador de Cloud FTP (roles/ftp.admin) en tu proyecto. Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.

Este rol predefinido contiene el permiso ftp.servers.update, que se requiere para actualizar un servidor SFTP.

También puedes obtener este permiso con roles personalizados o con otros roles predefinidos.

Actualiza el acceso a un servidor externo

gcloud

Para actualizar la configuración de acceso de un servidor externo, ejecuta el comando gcloud alpha storage ftp servers update. Proporciona la marca --allowed-cidr-blocks.

Antes de usar cualquiera de los datos de comando a continuación, haz los siguientes reemplazos:

  • SERVER_ID: Es el ID del servidor.
  • LOCATION_ID: La ubicación del servidor, como us-west1.
  • CIDR_BLOCK: Es un bloque CIDR que tiene permiso para acceder al servidor. Por ejemplo, 192.0.2.0/24. Debes proporcionar al menos un valor y puedes proporcionar un máximo de 500 bloques CIDR en una lista separada por comas. Para permitir conexiones desde todas las direcciones IP, usa 0.0.0.0/0.

Ejecuta el siguiente comando:

Linux, macOS o Cloud Shell

gcloud alpha storage ftp servers update SERVER_ID --location=LOCATION_ID \
    --allowed-cidr-blocks=CIDR_BLOCK

Windows (PowerShell)

gcloud alpha storage ftp servers update SERVER_ID --location=LOCATION_ID `
    --allowed-cidr-blocks=CIDR_BLOCK

Windows (cmd.exe)

gcloud alpha storage ftp servers update SERVER_ID --location=LOCATION_ID ^
    --allowed-cidr-blocks=CIDR_BLOCK
El servidor tarda unos segundos en actualizarse.

REST

Para actualizar la configuración de acceso de un servidor externo, usa el método servers.patch. En el parámetro de consulta updateMask, proporciona el campo externalConfig.

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • PROJECT_ID: Es el ID del proyecto de Google Cloud del servidor.
  • LOCATION_ID: La ubicación del servidor, como us-west1.
  • SERVER_ID: Es el ID del servidor.
  • CIDR_BLOCK: Es un bloque CIDR que tiene permiso para acceder al servidor. Por ejemplo, 192.0.2.0/24. Debes proporcionar al menos un valor y puedes proporcionar un máximo de 500 bloques CIDR . Para permitir conexiones desde todas las direcciones IP, usa 0.0.0.0/0.

Método HTTP y URL:

PATCH https://ftp.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/servers/SERVER_ID?updateMask=externalConfig

Cuerpo JSON de la solicitud:

{
  "externalConfig": {
    "allowedCidrBlocks": [
      "CIDR_BLOCK"
    ]
  }
}

Para enviar tu solicitud, expande una de estas opciones:

La respuesta identifica una operación de larga duración. El servidor tarda unos segundos en actualizarse.

Bibliotecas cliente

C#

Para obtener información sobre cómo instalar y usar la biblioteca cliente de Cloud FTP, consulta las bibliotecas cliente de Cloud FTP. Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud FTP para C#.

Para autenticarte en Cloud FTP, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.

using Google.Cloud.Ftp.V1;
using Google.LongRunning;
using Google.Protobuf.WellKnownTypes;
using System.Threading.Tasks;

public sealed partial class GeneratedCloudFtpClientSnippets
{
    /// <summary>Snippet for UpdateServerAsync</summary>
    /// <remarks>
    /// This snippet has been automatically generated and should be regarded as a code template only.
    /// It will require modifications to work:
    /// - It may require correct/in-range values for request initialization.
    /// - It may require specifying regional endpoints when creating the service client as shown in
    ///   https://cloud.google.com/dotnet/docs/reference/help/client-configuration#endpoint.
    /// </remarks>
    public async Task UpdateServerAsync()
    {
        // Create client
        CloudFtpClient cloudFtpClient = await CloudFtpClient.CreateAsync();
        // Initialize request argument(s)
        Server server = new Server();
        FieldMask updateMask = new FieldMask();
        // Make the request
        Operation<Server, OperationMetadata> response = await cloudFtpClient.UpdateServerAsync(server, updateMask);

        // Poll until the returned long-running operation is complete
        Operation<Server, OperationMetadata> completedResponse = await response.PollUntilCompletedAsync();
        // Retrieve the operation result
        Server result = completedResponse.Result;

        // Or get the name of the operation
        string operationName = response.Name;
        // This name can be stored, then the long-running operation retrieved later by name
        Operation<Server, OperationMetadata> retrievedResponse = await cloudFtpClient.PollOnceUpdateServerAsync(operationName);
        // Check if the retrieved long-running operation has completed
        if (retrievedResponse.IsCompleted)
        {
            // If it has completed, then access the result
            Server retrievedResult = retrievedResponse.Result;
        }
    }
}

Go

Para obtener información sobre cómo instalar y usar la biblioteca cliente de Cloud FTP, consulta las bibliotecas cliente de Cloud FTP. Para obtener más información, consulta la documentación de referencia de la API de Cloud FTP para Go.

Para autenticarte en Cloud FTP, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.


//go:build examples

package main

import (
	"context"

	ftp "cloud.google.com/go/ftp/apiv1"
	ftppb "cloud.google.com/go/ftp/apiv1/ftppb"
)

func main() {
	ctx := context.Background()
	// This snippet has been automatically generated and should be regarded as a code template only.
	// It will require modifications to work:
	// - It may require correct/in-range values for request initialization.
	// - It may require specifying regional endpoints when creating the service client as shown in:
	//   https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options
	c, err := ftp.NewCloudFtpRESTClient(ctx)
	if err != nil {
		// TODO: Handle error.
	}
	defer c.Close()

	req := &ftppb.UpdateServerRequest{
		// TODO: Fill request struct fields.
		// See https://pkg.go.dev/cloud.google.com/go/ftp/apiv1/ftppb#UpdateServerRequest.
	}
	op, err := c.UpdateServer(ctx, req)
	if err != nil {
		// TODO: Handle error.
	}

	resp, err := op.Wait(ctx)
	if err != nil {
		// TODO: Handle error.
	}
	// TODO: Use resp.
	_ = resp
}

Java

Para obtener información sobre cómo instalar y usar la biblioteca cliente de Cloud FTP, consulta las bibliotecas cliente de Cloud FTP. Para obtener más información, consulta la documentación de referencia de la API de Cloud FTP para Java.

Para autenticarte en Cloud FTP, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.

import com.google.api.core.ApiFuture;
import com.google.cloud.ftp.v1.CloudFtpClient;
import com.google.cloud.ftp.v1.Server;
import com.google.cloud.ftp.v1.UpdateServerRequest;
import com.google.longrunning.Operation;
import com.google.protobuf.FieldMask;

public class AsyncUpdateServer {

  public static void main(String[] args) throws Exception {
    asyncUpdateServer();
  }

  public static void asyncUpdateServer() throws Exception {
    // This snippet has been automatically generated and should be regarded as a code template only.
    // It will require modifications to work:
    // - It may require correct/in-range values for request initialization.
    // - It may require specifying regional endpoints when creating the service client as shown in
    // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
    try (CloudFtpClient cloudFtpClient = CloudFtpClient.create()) {
      UpdateServerRequest request =
          UpdateServerRequest.newBuilder()
              .setUpdateMask(FieldMask.newBuilder().build())
              .setServer(Server.newBuilder().build())
              .setRequestId("requestId693933066")
              .build();
      ApiFuture<Operation> future = cloudFtpClient.updateServerCallable().futureCall(request);
      // Do something.
      Operation response = future.get();
    }
  }
}

Node.js

Para obtener información sobre cómo instalar y usar la biblioteca cliente de Cloud FTP, consulta las bibliotecas cliente de Cloud FTP. Para obtener más información, consulta la documentación de referencia de la API de Cloud FTP para Node.js.

Para autenticarte en Cloud FTP, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.

/**
 * This snippet has been automatically generated and should be regarded as a code template only.
 * It will require modifications to work.
 * It may require correct/in-range values for request initialization.
 * TODO(developer): Uncomment these variables before running the sample.
 */
/**
 *  Optional. Field mask is used to specify the fields to be overwritten in the
 *  Server resource by the update.
 *  The fields specified in the update_mask are relative to the resource, not
 *  the full request. A field will be overwritten if it is in the mask. If the
 *  user does not provide a mask then all fields present in the request will be
 *  overwritten.
 */
// const updateMask = {}
/**
 *  Required. The resource being updated
 */
// const server = {}
/**
 *  Optional. An optional request ID to identify requests. Specify a unique
 *  request ID so that if you must retry your request, the server will know to
 *  ignore the request if it has already been completed. The server will
 *  guarantee that for at least 60 minutes since the first request.
 *  For example, consider a situation where you make an initial request and the
 *  request times out. If you make the request again with the same request
 *  ID, the server can check if original operation with the same request ID
 *  was received, and if so, will ignore the second request. This prevents
 *  clients from accidentally creating duplicate commitments.
 *  The request ID must be a valid UUID with the exception that zero UUID is
 *  not supported (00000000-0000-0000-0000-000000000000).
 */
// const requestId = 'abc123'

// Imports the Ftp library
const {CloudFtpClient} = require('@google-cloud/ftp').v1;

// Instantiates a client
const ftpClient = new CloudFtpClient();

async function callUpdateServer() {
  // Construct request
  const request = {
    server,
  };

  // Run request
  const [operation] = await ftpClient.updateServer(request);
  const [response] = await operation.promise();
  console.log(response);
}

callUpdateServer();

PHP

Para obtener información sobre cómo instalar y usar la biblioteca cliente de Cloud FTP, consulta las bibliotecas cliente de Cloud FTP. Para obtener más información, consulta la documentación de referencia de la API de Cloud FTP para PHP.

Para autenticarte en Cloud FTP, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.

use Google\ApiCore\ApiException;
use Google\ApiCore\OperationResponse;
use Google\Cloud\Ftp\V1\Client\CloudFtpClient;
use Google\Cloud\Ftp\V1\Server;
use Google\Cloud\Ftp\V1\Server\AccessType;
use Google\Cloud\Ftp\V1\UpdateServerRequest;
use Google\Rpc\Status;

/**
 * Updates the parameters of a single Server.
 *
 * @param int $serverAccessType The access type of the Server.
 */
function update_server_sample(int $serverAccessType): void
{
    // Create a client.
    $cloudFtpClient = new CloudFtpClient();

    // Prepare the request message.
    $server = (new Server())
        ->setAccessType($serverAccessType);
    $request = (new UpdateServerRequest())
        ->setServer($server);

    // Call the API and handle any network failures.
    try {
        /** @var OperationResponse $response */
        $response = $cloudFtpClient->updateServer($request);
        $response->pollUntilComplete();

        if ($response->operationSucceeded()) {
            /** @var Server $result */
            $result = $response->getResult();
            printf('Operation successful with response data: %s' . PHP_EOL, $result->serializeToJsonString());
        } else {
            /** @var Status $error */
            $error = $response->getError();
            printf('Operation failed with error data: %s' . PHP_EOL, $error->serializeToJsonString());
        }
    } catch (ApiException $ex) {
        printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
    }
}

/**
 * Helper to execute the sample.
 *
 * This sample has been automatically generated and should be regarded as a code
 * template only. It will require modifications to work:
 *  - It may require correct/in-range values for request initialization.
 *  - It may require specifying regional endpoints when creating the service client,
 *    please see the apiEndpoint client configuration option for more details.
 */
function callSample(): void
{
    $serverAccessType = AccessType::ACCESS_TYPE_UNSPECIFIED;

    update_server_sample($serverAccessType);
}

Python

Para obtener información sobre cómo instalar y usar la biblioteca cliente de Cloud FTP, consulta las bibliotecas cliente de Cloud FTP. Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud FTP para Python.

Para autenticarte en Cloud FTP, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.

# This snippet has been automatically generated and should be regarded as a
# code template only.
# It will require modifications to work:
# - It may require correct/in-range values for request initialization.
# - It may require specifying regional endpoints when creating the service
#   client as shown in:
#   https://googleapis.dev/python/google-api-core/latest/client_options.html
from google.cloud import ftp_v1


def sample_update_server():
    # Create a client
    client = ftp_v1.CloudFtpClient()

    # Initialize request argument(s)
    server = ftp_v1.Server()
    server.access_type = "INTERNAL"

    request = ftp_v1.UpdateServerRequest(
        server=server,
    )

    # Make the request
    operation = client.update_server(request=request)

    print("Waiting for operation to complete...")

    response = operation.result()

    # Handle the response
    print(response)

Ruby

Para obtener información sobre cómo instalar y usar la biblioteca cliente de Cloud FTP, consulta las bibliotecas cliente de Cloud FTP. Para obtener más información, consulta la documentación de referencia de la API de Cloud FTP para Ruby.

Para autenticarte en Cloud FTP, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.

require "google/cloud/ftp/v1"

##
# Snippet for the update_server call in the CloudFtp service
#
# This snippet has been automatically generated and should be regarded as a code
# template only. It will require modifications to work:
# - It may require correct/in-range values for request initialization.
# - It may require specifying regional endpoints when creating the service
# client as shown in https://cloud.google.com/ruby/docs/reference.
#
# This is an auto-generated example demonstrating basic usage of
# Google::Cloud::Ftp::V1::CloudFtp::Rest::Client#update_server.
#
def update_server
  # Create a client object. The client can be reused for multiple calls.
  client = Google::Cloud::Ftp::V1::CloudFtp::Rest::Client.new

  # Create a request. To set request fields, pass in keyword arguments.
  request = Google::Cloud::Ftp::V1::UpdateServerRequest.new

  # Call the update_server method.
  result = client.update_server request

  # The returned object is of type Gapic::Operation. You can use it to
  # check the status of an operation, cancel it, or wait for results.
  # Here is how to wait for a response.
  result.wait_until_done! timeout: 60
  if result.response?
    p result.response
  else
    puts "No response received."
  end
end

Actualiza el acceso para un servidor interno

gcloud

Para actualizar la configuración de acceso de un servidor interno, ejecuta el comando gcloud alpha storage ftp servers update. Proporciona la marca --consumer-accept-list y, de forma opcional, la marca --consumer-reject-list.

Antes de usar cualquiera de los datos de comando a continuación, haz los siguientes reemplazos:

  • SERVER_ID: Es el ID del servidor.
  • LOCATION_ID: La ubicación del servidor, como us-west1.
  • PROJECT_TO_ALLOW: Es el ID del proyecto o el número de un proyecto de consumidor que tiene permiso para conectarse al servidor con Private Service Connect. Por ejemplo, example-allowed-project. Debes especificar al menos un proyecto.

    Puedes permitir un máximo de 500 proyectos. Proporciona varios proyectos y sus respectivos límites de conexión en una lista separada por comas. Por ejemplo, --consumer-accept-list=projectA=20,projectB=15.

  • CONNECTION_LIMIT: Es la cantidad máxima de extremos de Private Service Connect que se pueden crear en el proyecto del consumidor. El valor debe ser de 1 a 250 extremos.
  • (Opcional) PROJECT_TO_REJECT: Es el ID del proyecto o el número de un proyecto del consumidor al que se le prohíbe conectarse al servidor. Por ejemplo, example-rejected-project Se rechaza el acceso al servidor de los proyectos incluidos en esta lista, incluso si se incluyen en la lista de proyectos permitidos.

    Puedes rechazar un máximo de 64 proyectos. Proporciona varios proyectos en una lista separada por comas.

    Si no quieres rechazar de forma explícita ningún proyecto, omite la marca --consumer-reject-list.

Ejecuta el siguiente comando:

Linux, macOS o Cloud Shell

gcloud alpha storage ftp servers update SERVER_ID --location=LOCATION_ID \
    --consumer-accept-list=PROJECT_TO_ALLOW=CONNECTION_LIMIT \
    --consumer-reject-list=PROJECT_TO_REJECT

Windows (PowerShell)

gcloud alpha storage ftp servers update SERVER_ID --location=LOCATION_ID `
    --consumer-accept-list=PROJECT_TO_ALLOW=CONNECTION_LIMIT `
    --consumer-reject-list=PROJECT_TO_REJECT

Windows (cmd.exe)

gcloud alpha storage ftp servers update SERVER_ID --location=LOCATION_ID ^
    --consumer-accept-list=PROJECT_TO_ALLOW=CONNECTION_LIMIT ^
    --consumer-reject-list=PROJECT_TO_REJECT
El servidor tarda unos segundos en actualizarse.

REST

Para actualizar la configuración de acceso de un servidor interno, usa el método servers.patch. En el parámetro de consulta updateMask, proporciona el campo internalConfig.

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • PROJECT_ID: Es el ID del proyecto de Google Cloud del servidor.
  • LOCATION_ID: Es la ubicación del servidor, como us-west1.
  • SERVER_ID: Es el ID del servidor.
  • PROJECT_TO_ALLOW: Es el ID del proyecto o el número de un proyecto del consumidor que tiene permiso para conectarse al servidor a través de Private Service Connect. Por ejemplo, example-allowed-project. Debes especificar al menos un proyecto.

    Puedes permitir un máximo de 500 proyectos.

  • CONNECTION_LIMIT: Es la cantidad máxima de extremos de Private Service Connect que se pueden crear en el proyecto del consumidor. El valor debe ser de 1 a 250 extremos.
  • (Opcional) PROJECT_TO_REJECT: Es el ID del proyecto o el número de un proyecto del consumidor al que se le prohíbe conectarse al servidor. Por ejemplo, example-rejected-project Se rechaza el acceso al servidor de los proyectos incluidos en esta lista, incluso si se incluyen en la lista de proyectos permitidos.

    Puedes rechazar un máximo de 64 proyectos.

    Si no quieres rechazar de forma explícita ningún proyecto, omite el objeto consumerRejectList.

Método HTTP y URL:

PATCH https://ftp.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/servers/SERVER_ID?updateMask=internalConfig

Cuerpo JSON de la solicitud:

{
  "internalConfig": {
    "consumerAcceptList": [
      {
        "project": "projects/PROJECT_TO_ALLOW",
        "connectionLimit": CONNECTION_LIMIT
      }
    ],
    "consumerRejectList": [
      {
        "project": "projects/PROJECT_TO_REJECT"
      }
    ]
  }
}

Para enviar tu solicitud, expande una de estas opciones:

La respuesta identifica una operación de larga duración. El servidor tarda unos segundos en actualizarse.

Bibliotecas cliente

C#

Para obtener información sobre cómo instalar y usar la biblioteca cliente de Cloud FTP, consulta las bibliotecas cliente de Cloud FTP. Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud FTP para C#.

Para autenticarte en Cloud FTP, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.

using Google.Cloud.Ftp.V1;
using Google.LongRunning;
using Google.Protobuf.WellKnownTypes;
using System.Threading.Tasks;

public sealed partial class GeneratedCloudFtpClientSnippets
{
    /// <summary>Snippet for UpdateServerAsync</summary>
    /// <remarks>
    /// This snippet has been automatically generated and should be regarded as a code template only.
    /// It will require modifications to work:
    /// - It may require correct/in-range values for request initialization.
    /// - It may require specifying regional endpoints when creating the service client as shown in
    ///   https://cloud.google.com/dotnet/docs/reference/help/client-configuration#endpoint.
    /// </remarks>
    public async Task UpdateServerAsync()
    {
        // Create client
        CloudFtpClient cloudFtpClient = await CloudFtpClient.CreateAsync();
        // Initialize request argument(s)
        Server server = new Server();
        FieldMask updateMask = new FieldMask();
        // Make the request
        Operation<Server, OperationMetadata> response = await cloudFtpClient.UpdateServerAsync(server, updateMask);

        // Poll until the returned long-running operation is complete
        Operation<Server, OperationMetadata> completedResponse = await response.PollUntilCompletedAsync();
        // Retrieve the operation result
        Server result = completedResponse.Result;

        // Or get the name of the operation
        string operationName = response.Name;
        // This name can be stored, then the long-running operation retrieved later by name
        Operation<Server, OperationMetadata> retrievedResponse = await cloudFtpClient.PollOnceUpdateServerAsync(operationName);
        // Check if the retrieved long-running operation has completed
        if (retrievedResponse.IsCompleted)
        {
            // If it has completed, then access the result
            Server retrievedResult = retrievedResponse.Result;
        }
    }
}

Go

Para obtener información sobre cómo instalar y usar la biblioteca cliente de Cloud FTP, consulta las bibliotecas cliente de Cloud FTP. Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud FTP para Go.

Para autenticarte en Cloud FTP, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.


//go:build examples

package main

import (
	"context"

	ftp "cloud.google.com/go/ftp/apiv1"
	ftppb "cloud.google.com/go/ftp/apiv1/ftppb"
)

func main() {
	ctx := context.Background()
	// This snippet has been automatically generated and should be regarded as a code template only.
	// It will require modifications to work:
	// - It may require correct/in-range values for request initialization.
	// - It may require specifying regional endpoints when creating the service client as shown in:
	//   https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options
	c, err := ftp.NewCloudFtpRESTClient(ctx)
	if err != nil {
		// TODO: Handle error.
	}
	defer c.Close()

	req := &ftppb.UpdateServerRequest{
		// TODO: Fill request struct fields.
		// See https://pkg.go.dev/cloud.google.com/go/ftp/apiv1/ftppb#UpdateServerRequest.
	}
	op, err := c.UpdateServer(ctx, req)
	if err != nil {
		// TODO: Handle error.
	}

	resp, err := op.Wait(ctx)
	if err != nil {
		// TODO: Handle error.
	}
	// TODO: Use resp.
	_ = resp
}

Java

Para obtener información sobre cómo instalar y usar la biblioteca cliente de Cloud FTP, consulta las bibliotecas cliente de Cloud FTP. Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud FTP para Java.

Para autenticarte en Cloud FTP, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.

import com.google.api.core.ApiFuture;
import com.google.cloud.ftp.v1.CloudFtpClient;
import com.google.cloud.ftp.v1.Server;
import com.google.cloud.ftp.v1.UpdateServerRequest;
import com.google.longrunning.Operation;
import com.google.protobuf.FieldMask;

public class AsyncUpdateServer {

  public static void main(String[] args) throws Exception {
    asyncUpdateServer();
  }

  public static void asyncUpdateServer() throws Exception {
    // This snippet has been automatically generated and should be regarded as a code template only.
    // It will require modifications to work:
    // - It may require correct/in-range values for request initialization.
    // - It may require specifying regional endpoints when creating the service client as shown in
    // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
    try (CloudFtpClient cloudFtpClient = CloudFtpClient.create()) {
      UpdateServerRequest request =
          UpdateServerRequest.newBuilder()
              .setUpdateMask(FieldMask.newBuilder().build())
              .setServer(Server.newBuilder().build())
              .setRequestId("requestId693933066")
              .build();
      ApiFuture<Operation> future = cloudFtpClient.updateServerCallable().futureCall(request);
      // Do something.
      Operation response = future.get();
    }
  }
}

Node.js

Para obtener información sobre cómo instalar y usar la biblioteca cliente de Cloud FTP, consulta las bibliotecas cliente de Cloud FTP. Para obtener más información, consulta la documentación de referencia de la API de Cloud FTP para Node.js.

Para autenticarte en Cloud FTP, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.

/**
 * This snippet has been automatically generated and should be regarded as a code template only.
 * It will require modifications to work.
 * It may require correct/in-range values for request initialization.
 * TODO(developer): Uncomment these variables before running the sample.
 */
/**
 *  Optional. Field mask is used to specify the fields to be overwritten in the
 *  Server resource by the update.
 *  The fields specified in the update_mask are relative to the resource, not
 *  the full request. A field will be overwritten if it is in the mask. If the
 *  user does not provide a mask then all fields present in the request will be
 *  overwritten.
 */
// const updateMask = {}
/**
 *  Required. The resource being updated
 */
// const server = {}
/**
 *  Optional. An optional request ID to identify requests. Specify a unique
 *  request ID so that if you must retry your request, the server will know to
 *  ignore the request if it has already been completed. The server will
 *  guarantee that for at least 60 minutes since the first request.
 *  For example, consider a situation where you make an initial request and the
 *  request times out. If you make the request again with the same request
 *  ID, the server can check if original operation with the same request ID
 *  was received, and if so, will ignore the second request. This prevents
 *  clients from accidentally creating duplicate commitments.
 *  The request ID must be a valid UUID with the exception that zero UUID is
 *  not supported (00000000-0000-0000-0000-000000000000).
 */
// const requestId = 'abc123'

// Imports the Ftp library
const {CloudFtpClient} = require('@google-cloud/ftp').v1;

// Instantiates a client
const ftpClient = new CloudFtpClient();

async function callUpdateServer() {
  // Construct request
  const request = {
    server,
  };

  // Run request
  const [operation] = await ftpClient.updateServer(request);
  const [response] = await operation.promise();
  console.log(response);
}

callUpdateServer();

PHP

Para obtener información sobre cómo instalar y usar la biblioteca cliente de Cloud FTP, consulta las bibliotecas cliente de Cloud FTP. Para obtener más información, consulta la documentación de referencia de la API de Cloud FTP para PHP.

Para autenticarte en Cloud FTP, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.

use Google\ApiCore\ApiException;
use Google\ApiCore\OperationResponse;
use Google\Cloud\Ftp\V1\Client\CloudFtpClient;
use Google\Cloud\Ftp\V1\Server;
use Google\Cloud\Ftp\V1\Server\AccessType;
use Google\Cloud\Ftp\V1\UpdateServerRequest;
use Google\Rpc\Status;

/**
 * Updates the parameters of a single Server.
 *
 * @param int $serverAccessType The access type of the Server.
 */
function update_server_sample(int $serverAccessType): void
{
    // Create a client.
    $cloudFtpClient = new CloudFtpClient();

    // Prepare the request message.
    $server = (new Server())
        ->setAccessType($serverAccessType);
    $request = (new UpdateServerRequest())
        ->setServer($server);

    // Call the API and handle any network failures.
    try {
        /** @var OperationResponse $response */
        $response = $cloudFtpClient->updateServer($request);
        $response->pollUntilComplete();

        if ($response->operationSucceeded()) {
            /** @var Server $result */
            $result = $response->getResult();
            printf('Operation successful with response data: %s' . PHP_EOL, $result->serializeToJsonString());
        } else {
            /** @var Status $error */
            $error = $response->getError();
            printf('Operation failed with error data: %s' . PHP_EOL, $error->serializeToJsonString());
        }
    } catch (ApiException $ex) {
        printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
    }
}

/**
 * Helper to execute the sample.
 *
 * This sample has been automatically generated and should be regarded as a code
 * template only. It will require modifications to work:
 *  - It may require correct/in-range values for request initialization.
 *  - It may require specifying regional endpoints when creating the service client,
 *    please see the apiEndpoint client configuration option for more details.
 */
function callSample(): void
{
    $serverAccessType = AccessType::ACCESS_TYPE_UNSPECIFIED;

    update_server_sample($serverAccessType);
}

Python

Para obtener información sobre cómo instalar y usar la biblioteca cliente de Cloud FTP, consulta las bibliotecas cliente de Cloud FTP. Para obtener más información, consulta la documentación de referencia de la API de Cloud FTP para Python.

Para autenticarte en Cloud FTP, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.

# This snippet has been automatically generated and should be regarded as a
# code template only.
# It will require modifications to work:
# - It may require correct/in-range values for request initialization.
# - It may require specifying regional endpoints when creating the service
#   client as shown in:
#   https://googleapis.dev/python/google-api-core/latest/client_options.html
from google.cloud import ftp_v1


def sample_update_server():
    # Create a client
    client = ftp_v1.CloudFtpClient()

    # Initialize request argument(s)
    server = ftp_v1.Server()
    server.access_type = "INTERNAL"

    request = ftp_v1.UpdateServerRequest(
        server=server,
    )

    # Make the request
    operation = client.update_server(request=request)

    print("Waiting for operation to complete...")

    response = operation.result()

    # Handle the response
    print(response)

Ruby

Para obtener información sobre cómo instalar y usar la biblioteca cliente de Cloud FTP, consulta las bibliotecas cliente de Cloud FTP. Para obtener más información, consulta la documentación de referencia de la API de Cloud FTP para Ruby.

Para autenticarte en Cloud FTP, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.

require "google/cloud/ftp/v1"

##
# Snippet for the update_server call in the CloudFtp service
#
# This snippet has been automatically generated and should be regarded as a code
# template only. It will require modifications to work:
# - It may require correct/in-range values for request initialization.
# - It may require specifying regional endpoints when creating the service
# client as shown in https://cloud.google.com/ruby/docs/reference.
#
# This is an auto-generated example demonstrating basic usage of
# Google::Cloud::Ftp::V1::CloudFtp::Rest::Client#update_server.
#
def update_server
  # Create a client object. The client can be reused for multiple calls.
  client = Google::Cloud::Ftp::V1::CloudFtp::Rest::Client.new

  # Create a request. To set request fields, pass in keyword arguments.
  request = Google::Cloud::Ftp::V1::UpdateServerRequest.new

  # Call the update_server method.
  result = client.update_server request

  # The returned object is of type Gapic::Operation. You can use it to
  # check the status of an operation, cancel it, or wait for results.
  # Here is how to wait for a response.
  result.wait_until_done! timeout: 60
  if result.response?
    p result.response
  else
    puts "No response received."
  end
end

Actualiza el nombre visible de un servidor

gcloud

Para actualizar metadatos, como el nombre visible de un servidor SFTP, ejecuta el comando gcloud alpha storage ftp servers update.

Antes de usar cualquiera de los datos de comando a continuación, haz los siguientes reemplazos:

  • SERVER_ID: Es el ID del servidor.
  • LOCATION_ID: La ubicación del servidor, como us-west1.
  • DISPLAY_NAME: Es un nombre visible para el servidor.

Ejecuta el siguiente comando:

Linux, macOS o Cloud Shell

gcloud alpha storage ftp servers update SERVER_ID --location=LOCATION_ID \
    --display-name="DISPLAY_NAME"

Windows (PowerShell)

gcloud alpha storage ftp servers update SERVER_ID --location=LOCATION_ID `
    --display-name="DISPLAY_NAME"

Windows (cmd.exe)

gcloud alpha storage ftp servers update SERVER_ID --location=LOCATION_ID ^
    --display-name="DISPLAY_NAME"
El servidor tarda unos segundos en actualizarse.

REST

Para actualizar los metadatos, como el nombre visible de un servidor SFTP, usa el método servers.patch. En el parámetro de consulta updateMask, proporciona una lista separada por comas de los campos que se actualizarán. En el cuerpo de la solicitud, proporciona un objeto JSON con los valores que se deben establecer.

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • PROJECT_ID: Es el ID del proyecto de Google Cloud del servidor.
  • LOCATION_ID: La ubicación del servidor, como us-west1.
  • SERVER_ID: Es el ID del servidor.
  • FIELDS_TO_UPDATE: Es una lista separada por comas de los campos que se actualizarán, en relación con el recurso del servidor. Por ejemplo, para actualizar el nombre visible, proporciona el parámetro de consulta updateMask=displayName.
  • DISPLAY_NAME: Es un nombre visible para el servidor.

Método HTTP y URL:

PATCH https://ftp.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/servers/SERVER_ID?updateMask=FIELDS_TO_UPDATE

Cuerpo JSON de la solicitud:

{
  "displayName": "DISPLAY_NAME"
}

Para enviar tu solicitud, expande una de estas opciones:

La respuesta identifica una operación de larga duración. El servidor tarda unos segundos en actualizarse.