Uso de CLI

En este tema se describe cómo utilizar CLI para acceder a Oracle Cloud Infrastructure y llevar a cabo tareas relacionadas con el servicio. En este tema se presupone que ha configurado CLI y está listo para comenzar a utilizarla.

Consejo

La CLI tiene un modo interactivo que proporciona información y sugerencias automáticas sobre parámetros y finalización de comandos. Para obtener más información, consulte Uso del modo interactivo.

Para obtener más información, Introducción a la interfaz de línea de comandos proporciona un repaso integral del uso de la CLI para iniciar una instancia.

Sintaxis de la línea de comandos

La mayoría de los comandos deben especificar un servicio, seguido de un tipo de recurso y una acción. La sintaxis básica de la línea de comandos es:

oci <service> <type> <action> <options>

Por ejemplo, esta sintaxis se aplica de la siguiente manera:

  • compute es el <servicio>
  • instance es el <tipo> de recurso
  • launch es la <acción> y
  • el resto de la cadena del comando consta de <opciones>.

El siguiente comando para iniciar una instancia muestra una construcción de línea de comandos típica.

oci compute instance launch --availability-domain "EMIr:PHX-AD-1" -c ocid1.compartment.oc1..aaaaaaaal3gzijdlieqeyg35nz5zxil26astxxhqol2pgeyqdrggnx7jnhwa --shape "VM.Standard1.1"   --display-name "Instance 1 for sandbox" --image-id ocid1.image.oc1.phx.aaaaaaaaqutj4qjxihpl4mboabsa27mrpusygv6gurp47kat5z7vljmq3puq --subnet-id  ocid1.subnet.oc1.phx.aaaaaaaaypsr25bzjmjyn6xwgkcrgxd3dbhiha6lodzus3gafscirbhj5bpa

En el ejemplo anterior, puede proporcionar un nombre fácil de recordar para la instancia mediante la opción --display-name. Evite introducir información confidencial.

Ejemplos básicos

En esta sección se proporcionan ejemplos de operaciones básicas con CLI.

Nota

Uso de variables de entorno para OCID

Varios de los ejemplos de CLI utilizan variables de entorno para OCID, como:

  • $T para un OCID de arrendamiento
  • $C para un OCID de compartimento

Por ejemplo:

T=ocid1.tenancy.oc1..aaaaaaaaba3pv6wm2ytdrwrx32uzr4h25vkcr4jqae5f15p2b2qstifsfdsq
C=ocid1.compartment.oc1..aaaaaaaarhifmvrvuqtye5q66rck6copzqck3ukc5fldrwpp2jojdcypxfga

Para obtener un espacio de nombres, ejecute el siguiente comando.

oci os ns get

Para que se muestren los compartimentos, ejecute el siguiente comando.

oci iam compartment list -c $T

Para obtener una lista de cubos, ejecute el siguiente comando.

oci os bucket list -ns mynamespace --compartment-id $C

Para que se muestren los usuarios y limitar la salida, ejecute el siguiente comando.

oci iam user list --compartment-id $T --limit 5

Para agregar un usuario a un grupo, ejecute el siguiente comando.

oci iam group add-user --user-id ocid1.user.oc1..aaabcaaaxkkhhtmghvqqq7rgvzwuj3drwmtlsgz6sbfo7y4uc5sprzli377q --group-id ocid1.group.oc1..aaabcaaa66plootq6uuwwxhfdw2lsdqtgeb6l4pjsv5eeuenxrauujj35b7b

Obtención de ayuda con comandos

Puede obtener ayuda para cualquier comando mediante --help, -h o -?. Por ejemplo:

oci --help
oci os bucket -h
oci os bucket create -?

Visualización de toda la ayuda de CLI

Puede ver la ayuda de la línea de comandos.

Determinación de la versión de CLI instalada

Para obtener la versión instalada de CLI, ejecute el siguiente comando.

oci --version

Autenticación mediante principales de instancia

Principales de instancia es una función de servicio de IAM que permite que las instancias sean actores autorizados (o principales) que puedan realizar acciones en los recursos de servicio. Cada instancia informática tiene su propia identidad y se autentica con los certificados que se le agregan. Estos certificados se crean, se asignan a instancias y se rotan automáticamente, de modo que usted no necesita distribuir credenciales a sus hosts y rotarlos.

Para permitir la autorización de principal de instancia desde la CLI, puede especificar la opción de autorización (--auth) para un comando.

Por ejemplo:

 oci os ns get --auth instance_principal

También puede activar la autorización de principal de instancia definiendo la variable de entorno OCI_CLI_AUTH.

Por ejemplo:
OCI_CLI_AUTH=instance_principal
Nota

El valor definido para el parámetro --auth tiene prioridad sobre la variable de entorno.

Para obtener más información sobre los principales de la instancia, consulte Llamada a servicios desde una Instancia.

Uso de un servidor proxy

La CLI utiliza solicitudes HTTP para realizar llamadas a los servicios de Oracle Cloud Infrastructure. Si necesita utilizar un servidor proxy para las solicitudes HTTP salientes en su entorno, puede utilizar uno de los siguientes métodos:

Utilizar el parámetro --proxy en la línea de comandos

Puede especificar un servidor proxy en la línea de comandos incluyendo el parámetro --proxy al llamar a un comando de la CLI.

Por ejemplo:

oci os ns get --proxy https://<add your proxy URL here>/

Agregar una entrada de proxy al archivo de configuración de la CLI

Para obtener más información, consulte Especificación de un servidor proxy.

Usar variables de entorno

Configure las variables de entorno HTTP_PROXY y HTTPS_PROXY para que apunten al servidor proxy.

Por ejemplo, en Linux:
https_proxy=https://<add your proxy URL here>/
http_proxy=http://<add your proxy URL here>/
En Windows, utilizando PowerShell:
$Env:http_proxy = "http://<add your proxy URL here>/"

Uso de fechas y horas en comandos de CLI

CLI soporta los siguientes formatos de fecha aceptados.

  • UTC con milisegundos

    Format: YYYY-MM-DDTHH:mm:ss.sssTZD, Example: 2017-09-15T20:30:00.123Z
  • UTC sin milisegundos

    Format: YYYY-MM-DDTHH:mm:ssTZD, Example: 2017-09-15T20:30:00Z
  • UTC con precisión de minutos

    Format: YYYY-MM-DDTHH:mmTZD, Example: 2017-09-15T20:30Z
  • Zona horaria con milisegundos

    Format: YYYY-MM-DDTHH:mm:ss.sssTZD, Example: 2017-09-15T12:30:00.456-08:00
  • Zona horaria sin milisegundos

    Format: YYYY-MM-DDTHH:mm:ssTZD, Example: 2017-09-15T12:30:00-08:00
  • Zona horaria con desfase con precisión de minutos

    Format: YYYY-MM-DDTHH:mmTZD, Example: 2017-09-15T12:35-08:00
  • Solo fecha (esta fecha se tomará como la medianoche UTC de ese día)

    Format: YYYY-MM-DD, Example: 2017-09-15
  • Segundos de Epoch

    Example: 1412195400
Nota

En nuestros formatos de fecha y hora, la T se puede sustituir por un espacio. Por ejemplo, tanto "2017-09-15 20:30:00.123Z" como 2017-09-15T20:30:00.123Z son aceptables. (Tenga en cuenta que si no incluye la T, debe poner el valor entre comillas). También se soportan zonas horarias con y sin los dos puntos. Tanto +10:00 como +1000 son aceptables.

Gestión de entrada y salida de CLI

CLI proporciona varias opciones para gestionar la entrada y la salida de comandos.

Transferencia de entrada compleja

La entrada compleja, como las matrices y los objetos con más de un valor, se transfieren en formato JSON y se pueden proporcionar como una cadena en la línea de comandos, como un archivo o como una cadena de línea de comandos y como un archivo.

MacOS, Linux o Unix

El siguiente comando muestra cómo transferir dos valores para el objeto --metadata.

oci os bucket create -ns mynamespace --name mybucket --metadata '{"key1":"value1","key2":"value2"}' --compartment-id ocid1.compartment.oc1..<example>

Windows

En Windows, para transferir la entrada compleja a CLI como una cadena JSON, debe escribir todo el bloque entre comillas dobles. Dentro del bloque, todas las comillas dobles para las cadenas de valores y claves se deben identificar con un carácter de barra invertida (\).

Los siguientes comandos muestran cómo transferir dos valores para el objeto --metadata en Windows.

oci os bucket create -ns mynamespace --name mybucket --metadata "{\"key1\":\"value1\",\"key2\":\"value2\"}" --compartment-id ocid1.compartment.oc1..<example>
Nota

Errores de JSON

El mensaje de error que indica que el parámetro '<PARAMETER NAME>' debe estar en formato JSON muestra que el valor transferido para el parámetro con el nombre "PARAMETER NAME" no era un JSON válido. Este error suele ser el resultado de que la cadena JSON no se ha identificado correctamente.

Para obtener más información sobre el uso de cadenas JSON, consulte Opciones de JSON avanzadas.

Formato de salida como una tabla

Por defecto, todas las respuestas a un comando se devuelven en formato JSON. Por ejemplo, se devuelve una respuesta como la siguiente cuando se emite el comando para obtener una lista de regiones.

{
  "data": [
    {
      "key": "FRA",
      "name": "eu-frankfurt-1"
    },
    {
      "key": "IAD",
      "name": "us-ashburn-1"
    },
    {
      "key": "ICN",
      "name": "ap-seoul-1"
    },
    {
      "key": "PHX",
      "name": "us-phoenix-1"
    },
    {
      "key": "LHR",
      "name": "uk-london-1"
    },
    {
      "key": "NRT",
      "name": "ap-tokyo-1"
    },			
    {
      "key": "YYZ",
      "name": "ca-toronto-1"
    }				
  ]
}

En algunos casos, la legibilidad puede convertirse en un problema, que se puede resolver fácilmente mediante la aplicación de formato de tabla a una respuesta. Para obtener una respuesta a un comando con formato de tabla, ejecute el siguiente comando.

oci iam region list --output table

La siguiente lista de regiones de ejemplo se devuelve como una tabla de dos columnas.


+-----+----------------+
| key | name           |
+-----+----------------+
| FRA | eu-frankfurt-1 |
| IAD | us-ashburn-1   |
| ICN | ap-seoul-1     |
| PHX | us-phoenix-1   |
| NRT | ap-tokyo-1     |				
| LHR | uk-london-1    |
| YYZ | ca-toronto-1   |  
+-----+----------------+

Uso de consultas

Puede filtrar la salida utilizando la opción --query para JSON. Esta opción utiliza el lenguaje de consulta JMESPath para JSON.

El filtrado es muy útil al manejar grandes cantidades de salida. Por ejemplo, el siguiente comando devuelve una lista de todos los compartimentos:

oci iam compartment list --all

Este comando devuelve mucha información. Entre los campos devueltos se incluye el ID de compartimento, el nombre, el estado del ciclo de vida y las etiquetas definidas.

Selección de los campos que se deben mostrar

Para seleccionar solo los campos que desea, especifique el nombre de la matriz y el nombre de uno o más campos en forma de una matriz delimitada por comas:

<nombre de la matriz>[].[<nombre del campo>]
Nota

  • Los nombres de los campos son sensibles a las mayúsculas y minúsculas. Indique el nombre del campo exactamente como se especifica en el objeto JSON.
  • Si se especifican nombres de campo que no existen, la consulta incluirá null en la salida.
  • Si los nombres de campo contienen caracteres especiales o espacios, incluya el nombre de campo entre comillas dobles escapadas (\" para bash o \`" para PowerShell).
Por ejemplo, para que solo se devuelva el nombre del compartimento y el estado del ciclo de vida:
oci iam compartment list --all --query "data[].[name, \"lifecycle-state\"]"
Esto devolverá una salida similar a la siguiente:
[ 
  [
    "ATestCompartment",
    "ACTIVE"
  ],
  
  [
    "blocktest",
    "ACTIVE"
  ],
  [
    "ZestyTest",
    "ACTIVE"
  ]
]
También puede recuperar información en forma de objetos con nombres de campo personalizados:
<name of the array>[].{<your custom name>:<the name of the field>}
Por ejemplo:
oci iam compartment list --all --query "data[].{Name:name, \"LifecycleState\":\"lifecycle-state\"}"
Esto devolverá una salida similar a la siguiente:

[
  {
    "LifecycleState": "ACTIVE",
    "Name": "ATestCompartment"
  },
  {
    "LifecycleState": "ACTIVE",
    "Name": "blocktest"
  },
  {
    "LifecycleState": "ACTIVE",
    "Name": "ZestyTest"
  }
]

Especificación de condiciones de búsqueda

Puede especificar una condición de búsqueda para la información devuelta. Por ejemplo, para que solo se devuelva un compartimento con el nombre blocktest:
oci iam compartment list --all --query "data[?name=='blocktest']"
La información que se devolverá será similar a la siguiente:
[
  {
    "compartment-id": "ocid1.tenancy.oc1..<example_value>",
    "defined-tags": {
      "MySpecialTag": {
        "Phonebook": "software-development-kit"
      }
    },
    "description": "Compartment used by integration tests. 10000",
    "freeform-tags": {},
    "id": "ocid1.compartment.oc1..<example>",
    "inactive-status": null,
    "is-accessible": null,
    "lifecycle-state": "ACTIVE",
    "name": "blocktest",
    "time-created": "2018-06-19T17:08:46.059000+00:00"
  }
]
Puede especificar varias condiciones de búsqueda. En el siguiente ejemplo, se recupera el nombre y el estado del ciclo de vida de los compartimentos creados antes de 2019 que tienen la etiqueta MySpecialTag:
oci iam compartment list --all --query "data[?\"time-created\"<'2019'&&\"defined-tags\".MySpecialTag!=null].[name, \"lifecycle-state\"]"
Este comando devolverá una salida similar a la siguiente:
[
  [
    "blocktest",
    "ACTIVE"
  ]
]

Para obtener más información sobre el lenguaje de consulta de JMESPath para JSON, consulte JMESPath.

Opciones avanzadas de JSON

Puede obtener el formato de JSON correcto para los comandos y las opciones de comando.

  • Para una opción de comando, utilice --generate-param-json-input y especifique la opción de comando para la que desea obtener el JSON. Para generar el JSON para la creación o actualización de una regla de seguridad, ejecute el siguiente comando.

    oci network security-list create --generate-param-json-input ingress-security-rules
  • Para un comando entero, utilice --generate-full-command-json-input. Para generar el JSON para iniciar una instancia, ejecute el siguiente comando.

    oci compute instance launch --generate-full-command-json-input

Orden de prioridad para la entrada de JSON

CLI soporta la combinación de argumentos en la línea de comandos con la entrada de archivo. Sin embargo, si se proporcionan los mismos valores en un archivo y en la línea de comandos, la línea de comandos tiene prioridad.

Uso de un archivo JSON para una entrada compleja

Puede transferir la entrada compleja desde un archivo haciendo referencia a ella desde la línea de comandos. Para usuarios de Windows, se elimina el requisito de tener que omitir el texto de JSON. Proporcione una ruta de acceso al archivo con el prefijo file://.

Tipos de ruta de acceso

Utilizando testfile.json como ejemplo, se soportan los siguientes tipos de ruta de acceso.

  • Rutas de acceso relativas del mismo directorio, por ejemplo: file://testfile.json y file://relative/path/to/testfile.json
  • Rutas de acceso absolutas en Linux, MacOS o Unix, por ejemplo: file:///absolute/path/to/testfile.json
  • Rutas de acceso completas a archivos en Windows, por ejemplo: file://C:\path\to\testfile.json
Nota

Expansiones de ruta de acceso de archivo

Las expansiones de ruta de acceso de archivo, como "~/", "./", y "../", están soportadas. En Windows, la expresión "~/" se expande al directorio de usuario, que se almacena en la variable de entorno %USERPROFILE%. El uso de variables de entorno en rutas de acceso también está soportado.

Ubicaciones de archivo

Están soportadas las siguientes ubicaciones de archivo.

  • Su directorio raíz.

    oci os bucket create -ns mynamespace --name mybucket --compartment-id ocid1.compartment.oc1..aaaaaaaarhifmvrvuqtye5q66rck6copzqck3ukc5fldrwpp2jojdcypxfga --metadata file://~/testfile.json
  • El directorio actual.

    oci os bucket create -ns mynamespace --name mybucket --compartment-id ocid1.compartment.oc1..aaaaaaaarhifmvrvuqtye5q66rck6copzqck3ukc5fldrwpp2jojdcypxfga --metadata file://testfile.json
  • El directorio /tmp (Linux, Unix o MacOS).

    oci os bucket create -ns mynamespace --name mybucket --compartment-id ocid1.compartment.oc1..aaaaaaaarhifmvrvuqtye5q66rck6copzqck3ukc5fldrwpp2jojdcypxfga --metadata file:///tmp/testfile.json
  • El directorio C:\temp (Windows).

    oci os bucket create -ns mynamespace --name mybucket --compartment-id ocid1.compartment.oc1..aaaaaaaarhifmvrvuqtye5q66rck6copzqck3ukc5fldrwpp2jojdcypxfga --metadata file://C:\temp\testfile.json

Ejemplos de uso de un archivo JSON como entrada

Los ejemplos de esta sección utilizan el JSON que se genera para una opción de comando y un comando entero. El JSON se guarda en un archivo, se edita y se utiliza como entrada de la línea de comandos.

Uso de la entrada de archivo para una opción de comando

En este ejemplo completo se muestra cómo generar el JSON para una opción de ID de lista de seguridad utilizada para crear una subred. El JSON se guarda en un archivo, se edita y se utiliza como entrada de la línea de comandos.

Respuesta del comando

[
  {
    "icmpOptions": {
      "code": 0,
      "type": 0
      },
    "isStateless": true,
    "protocol": "string",
    "source": "string",
    "tcpOptions": {
    "destinationPortRange": {
      "max": 0,
      "min": 0
      },
    "sourcePortRange": {
      "max": 0,
      "min": 0
      }
    },
    "udpOptions": {
    "destinationPortRange": {
      "max": 0,
      "min": 0
      },
    "sourcePortRange": {
      "max": 0,
      "min": 0
      }
    }
    },
    {
    "icmpOptions": {
      "code": 0,
      "type": 0
      },
    "isStateless": true,
    "protocol": "string",
    "source": "string",
    "tcpOptions": {
    "destinationPortRange": {
      "max": 0,
      "min": 0
      },
    "sourcePortRange": {
      "max": 0,
      "min": 0
      }
    },
    "udpOptions": {
    "destinationPortRange": {
      "max": 0,
      "min": 0
      },
    "sourcePortRange": {
      "max": 0,
      "min": 0
      }
    }
  }
]
Respuesta del comando
{
  "assignPublicIp": true,
  "availabilityDomain": "string",
  "compartmentId": "string",
  "displayName": "string",
  "extendedMetadata": {
  "string1": {
    "string1": "string",
    "string2": "string"
   },
  "string2": {
    "string1": "string",
    "string2": "string"
   }
  },
  "hostnameLabel": "string",
  "imageId": "string",
  "metadata": {
    "string1": "string",
    "string2": "string"
    },
  "privateIp": "string",
  "shape": "string",
  "skipSourceDestCheck": true,
  "subnetId": "string",
  "vnicDisplayName": "string"
}
Uso de un archivo JSON como entrada para una opción de lista de seguridad
  1. Para generar el JSON para la opción security-list-ids, ejecute el siguiente comando.

    oci network subnet create --generate-param-json-input security-list-ids
  2. Cree un archivo y agregue el siguiente contenido, que se devolvió en el paso 1. Este contenido no tiene que identificarse ni estar en una sola línea, solo tiene que contener un JSON válido.

    [
      "string",
      "string"
    ]
  3. Edite el archivo y sustituya los valores de "cadena" por los valores, como se muestra en el siguiente ejemplo.

    [
      "ocid1.securitylist.oc1.phx.aaaaaaaaw7c62ybv4676muq5tdrwup3v2maiquhbkbh4sf75tjcf5dm6kvlq",
      "ocid1.securitylist.oc1.phx.aaaaaaaa7snx4jh5drwo2h33rwcdqev6elir55hnrhi2yfndjfons5rcqk4q"
    ]
  4. Guarde el archivo como "security-list.json".
  5. Para crear la subred con "security-list.json" como entrada, ejecute el siguiente comando.

    oci network subnet create --vcn-id ocid1.vcn.oc1.phx.aaaaaaaa6wmuahgxejkv7ukyruqdrwlmrumtl6vyisxxxavagiqw2eeet2sa -c ocid1.compartment.oc1..aaaaaaaal3gzijdliedxxhqol2rggndrwyg35nz5zxil26astpgeyq7jnhwa  --availability-domain "EMIr:PHX-AD-1" --display-name TESTSUB --dns-label "testinstances" --cidr-block "10.0.0.0/16" --security-list-ids file://security-list.json

Uso de la entrada de archivo para un comando completo

En este ejemplo completo se muestra cómo generar el JSON para crear una red virtual en la nube (VCN). El JSON se guarda en un archivo, se edita y se utiliza como entrada de la línea de comandos.

Uso de un archivo JSON como entrada para crear una VCN
  1. Para generar el JSON necesario para crear una VCN, ejecute el siguiente comando.

    oci network vcn create --generate-full-command-json-input
  2. Cree un archivo y agregue el siguiente contenido, que se devolvió en el paso 1. Este contenido no tiene que identificarse ni estar en una sola línea, solo tiene que contener un JSON válido.

    {
      "cidrBlock": "string",
      "compartmentId": "string",
      "displayName": "string",
      "dnsLabel": "string"
    }
  3. Edite el archivo y sustituya los valores de "cadena" por los valores, como se muestra en el siguiente ejemplo.

    {
      "cidrBlock": "10.0.0.0/16",
      "compartmentId": "ocid1.compartment.oc1..aaaaaaaal3gzijdliedxxhqol2rggndrwyg35nz5zxil26astpgeyq7jnhwa",
      "displayName": "TestVCN",
      "dnsLabel": "testdns"
    }
  4. Guarde el archivo y asígnele el nombre "create-vcn.json"
  5. Para crear la VCN mediante "create-vcn.json" como entrada, ejecute el siguiente comando.
    oci network vcn create --from-json file://create-vcn.json 

Ejemplos avanzados

En los siguientes ejemplos se muestra cómo puede usar CLI para completar tareas complejas en Oracle Cloud Infrastructure.

Trabajar con Object Storage

Puede usar CLI para varias operaciones de objeto con el servicio Object Storage.

Carga y Descarga de Archivos

Los objetos se pueden cargar desde un archivo o desde la línea de comandos (STDIN) y se pueden descargar en un archivo o la línea de comandos (STDOUT).

Cargue un objeto:

oci os object put -ns mynamespace -bn mybucket --name myfile.txt --file /Users/me/myfile.txt --metadata '{"key1":"value1","key2":"value2"}'

Cargue el contenido del objeto desde la línea de comandos (STDIN):

oci os object put -ns mynamespace -bn mybucket --name myfile.txt --file <--'object content'

Descargue un objeto:

oci os object get -ns mynamespace -bn mybucket --name myfile.txt --file /Users/me/myfile.txt

Imprima el contenido del objeto en la línea de comandos (STDOUT):

oci os object get -ns mynamespace -bn mybucket --name myfile.txt --file -

Operaciones en bloque en Object Storage

CLI soporta las siguientes operaciones en bloque en Object Storage:

  • Carga de archivos de un directorio y todos sus subdirectorios en un cubo

    # Upload all the files in a directory.
    oci os object bulk-upload -ns mynamespace -bn mybucket --src-dir path/to/upload/directory
  • Descarga de todos los objetos, o todos los objetos que coinciden con un prefijo especificado, en un cubo

    # Download all the objects.
    oci os object bulk-download -ns mynamespace -bn mybucket --download-dir path/to/download/directory
    						
    # Download all the objects that match the specified prefix.
    oci os object bulk-download -ns mynamespace -bn mybucket --download-dir path/to/download/directory --prefix myprefix
  • Supresión de todos los objetos, o todos los objetos que coinciden con un prefijo especificado, en un cubo

    # Delete all the objects.
    oci os object bulk-delete -ns mynamespace -bn mybucket
    			
    # Delete objects that match the specified prefix.
    oci os object bulk-delete -ns mynamespace -bn mybucket --prefix myprefix

Las operaciones en bloque soportan varias opciones que le permiten:

  • Sobrescribir u omitir archivos/objetos con --overwrite o --no-overwrite. (Nota: Si no transfiere ninguna de estas opciones, se le solicitará confirmación cada vez que haya algo que sobrescribir).
  • Limitar las operaciones de supresión, carga o descarga mediante --prefix y/o --delimiter
  • Obtener una vista previa de una supresión en bloque con --dry-run

Para obtener más información sobre los comandos para operaciones en bloque, ejecute los siguientes comandos de ayuda:

# bulk-upload
oci os object bulk-upload -h
				
# bulk-download
oci os object bulk-download -h
				
# bulk-delete
oci os object bulk-delete -h

Operaciones de varias partes en Object Storage

Las operaciones de varias partes para Object Storage incluyen cargas y descargas de objetos.

Cargas de varias partes

Se pueden cargar archivos de gran tamaño en Object Storage en varias partes para acelerar la carga. Por defecto, se cargan archivos con un tamaño superior a 128 MiB mediante operaciones de varias partes. Puede sustituir este valor por defecto mediante la opción --no-multipart.

Puede configurar las siguientes opciones para el comando oci os object put:

  • --no-multipart anula una carga automática de varias partes si el objeto tiene un tamaño superior a 128 MiB. El objeto se carga como una sola parte, independientemente del tamaño.
  • --part-size en MiB, para utilizar en una operación de varias partes. El tamaño de la parte por defecto es de 128 MiB y el tamaño de pieza que especifique debe ser superior a 10 MiB. Si el objeto es mayor que --part-size, se carga en varias partes.
  • --parallel-upload-count para especificar el número de operaciones en paralelo que se deben realizar. Puede usar este valor para equilibrar recursos y tiempos de carga. Un valor más alto puede mejorar los tiempos, pero consume más recursos del sistema y ancho de banda de red. El valor por defecto es10.

El comando --resume-put permite reanudar la carga de archivos grandes en casos en los que se interrumpió la carga.

Nota

Cargas de varias partes de STDIN

Los objetos cargados desde STDIN se cargan en varias partes. Si el contenido del objeto tiene un tamaño inferior a 10 MiB, la carga solo tiene 1 parte y se utiliza la API de MultipartUpload para la carga. Al especificar --no-multipart al cargar desde STDIN se producirá un error.

En el siguiente ejemplo se muestra el comando para una carga de varias partes si el objeto tiene un tamaño superior a 200 MiB.

oci os object put -ns my-namespace -bn my-bucket --file path/to/large/file --part-size 200

Para obtener más información sobre cargas de varias partes, consulte Uso de cargas de varias partes.

Descargas de varias partes

Se pueden descargar archivos grandes de Object Storage en varias partes para acelerar la descarga.

Puede configurar las siguientes opciones para el comando oci os object get:

  • --multipart-download-threshold permite especificar el tamaño, en MiB, en el que un objeto se debe descargar en varias partes. Este tamaño debe ser al menos de 128 MiB.
  • --part-size, en MiB, que se utiliza para una parte de descarga. Esto proporciona flexibilidad para utilizar más (tamaño más pequeño) o menos (tamaño más grande) partes según sea necesario para sus requisitos. Por ejemplo, calcular la potencia y el ancho de banda de red. El tamaño mínimo por defecto de la parte es de 120 MiB.
  • --parallel-download-count permite especificar el número de partes que se descargan al mismo tiempo. Un valor más alto puede mejorar los tiempos, pero consume más recursos del sistema y ancho de banda de red. El valor por defecto es10.

El siguiente ejemplo muestra el comando para descargar cualquier objeto con un tamaño superior a 500 MiB. El objeto se descarga en partes de 128 MiB.

oci os object get -ns my-namespace -bn my-bucket --name my-large-object --multipart-download-threshold 500 --part-size 128