Utilización de cURL
Puede sacar el máximo provecho de trabajar con la línea de mandatos en la mayoría de los entornos con IBM Cloud® Object Storage y cURL
.
A continuación encontrará una 'hoja de repaso' de los mandatos básicos de curl
para la API REST de IBM Cloud® Object Storage. Encontrará más información en la consulta de API correspondiente a grupos o a objetos.
Para utilizar curl
se presupone que el usuario está familiarizado con la línea de mandatos y con el almacenamiento de objetos y que ha obtenido la información necesaria de una credencial de servicio,
la consulta de puntos finales o la consola. Si no está familiarizado
con alguno de los términos o de las variables, los puede consultar en el glosario.
Nota: Información de identificación personal (PII): Al nombrar grupos u objetos, no utilice ninguna información que pueda identificar a cualquier usuario (persona física) por nombre, ubicación o cualquier otro medio.
Solicitud de una señal de IAM
Dos formas de generar una señal oauth
de IAM para las solicitudes de autenticación son mediante un mandato curl
con una clave de API (descrita más adelante) o desde la línea de mandatos mediante la CLI de IBM Cloud®.
Solicitud de una señal de IAM mediante una clave de API
Asegúrese de que tiene una clave de API. La puede obtener de IBM Cloud® Identity and Access Management.
curl -X "POST" "https://iam.cloud.ibm.com/oidc/token" \
-H 'Accept: application/json' \
-H 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode "apikey={api-key}" \
--data-urlencode "response_type=cloud_iam" \
--data-urlencode "grant_type=urn:ibm:params:oauth:grant-type:apikey"
Obtención del ID de instancia de recurso
Algunos de los mandatos siguientes requieren un parámetro ibm-service-instance-id
. Para encontrar este valor, vaya al separador Credenciales de servicio de la instancia de Object Storage en la consola de la nube.
Cree una credencial si es necesario y, a continuación, utilice el menú Ver credenciales para ver el formato JSON. Utilice el valor de resource_instance_id
.
Para utilizarlo con las API de curl, solo necesita el UUID que empieza después del último signo de dos puntos y termina antes del signo de dos puntos doble final. Por ejemplo, el ID crn:v1:bluemix:public:cloud-object-storage:global:a/81caa0254631ce5f9330ae427618f209:39d8d161-22c4-4b77-a856-f11db5130d7d::
se puede abreviar como 39d8d161-22c4-4b77-a856-f11db5130d7d
.
Obtención de una lista de grupos
curl "https://(endpoint)/"
-H "Authorization: bearer (token)"
-H "ibm-service-instance-id: (resource-instance-id)"
Añadir un grupo
curl -X "PUT" "https://(endpoint)/(bucket-name)"
-H "Authorization: Bearer (token)"
-H "ibm-service-instance-id: (resource-instance-id)"
Adición de un grupo (clase de almacenamiento)
curl -X "PUT" "https://(endpoint)/(bucket-name)"
-H "Content-Type: text/plain; charset=utf-8"
-H "Authorization: Bearer (token)"
-H "ibm-service-instance-id: (resource-instance-id)"
-d "<CreateBucketConfiguration>
<LocationConstraint>(provisioning-code)</LocationConstraint>
</CreateBucketConfiguration>"
Puede consultar la lista de códigos válidos para LocationConstraint
en la guía de Storage Classes.
Creación de un CORS de grupo
curl -X "PUT" "https://(endpoint)/(bucket-name)/?cors"
-H "Content-MD5: (md5-hash)"
-H "Authorization: bearer (token)"
-H "Content-Type: text/plain; charset=utf-8"
-d "<CORSConfiguration>
<CORSRule>
<AllowedOrigin>(url)</AllowedOrigin>
<AllowedMethod>(request-type)</AllowedMethod>
<AllowedHeader>(url)</AllowedHeader>
</CORSRule>
</CORSConfiguration>"
La cabecera Content-MD5
tiene que ser la representación binaria de un hash MD5 codificado en base64.
echo -n (XML block) | openssl dgst -md5 -binary | openssl enc -base64
Obtención de un CORS de grupo
curl "https://(endpoint)/(bucket-name)/?cors"
-H "Authorization: bearer (token)"
Supresión de un CORS de grupo
curl -X "DELETE" "https://(endpoint)/(bucket-name)/?cors"
-H "Authorization: bearer (token)"
Obtención de una lista de objetos
curl "https://(endpoint)/(bucket-name)"
-H "Authorization: bearer (token)"
Obtención de cabeceras de grupo
curl --head "https://(endpoint)/(bucket-name)/"
-H "Authorization: bearer (token)"
Obtención de metadatos de grupo
El uso del punto final de la API de configuración no es el mismo que el punto final para el propio grupo. Utilice este mandato para obtener los metadatos del grupo especificado.
curl https://config.cloud-object-storage.cloud.ibm.com/v1/b/{my-bucket} \
-H 'authorization: bearer <IAM_token>'
Supresión de un grupo
curl -X "DELETE" "https://(endpoint)/(bucket-name)/"
-H "Authorization: bearer (token)"
Carga de un objeto
curl -X "PUT" "https://(endpoint)/(bucket-name)/(object-key)" \
-H "Authorization: bearer (token)" \
-H "Content-Type: (content-type)" \
-d "(object-contents)"
Obtención de las cabeceras de un objeto
curl --head "https://(endpoint)/(bucket-name)/(object-key)"
-H "Authorization: bearer (token)"
Copia de un objeto
curl -X "PUT" "https://(endpoint)/(bucket-name)/(object-key)"
-H "Authorization: bearer (token)"
-H "x-amz-copy-source: /(bucket-name)/(object-key)"
Comprobación de la información de CORS
curl -X "OPTIONS" "https://(endpoint)/(bucket-name)/(object-key)"
-H "Access-Control-Request-Method: PUT"
-H "Origin: http://(url)"
Descarga de un objeto
curl "https://(endpoint)/(bucket-name)/(object-key)"
-H "Authorization: bearer (token)"
Comprobación de la ACL de un objeto
curl "https://(endpoint)/(bucket-name)/(object-key)?acl"
-H "Authorization: bearer (token)"
Habilitación de un cortafuegos
El uso del punto final de la API de configuración no es el mismo que el punto final para el propio grupo. Utilice este mandato para habilitar un cortafuegos para el grupo especificado. Ningún otro servicio de IBM Cloud® puede acceder al grupo cuando el cortafuegos está activo.
curl -X PATCH https://config.cloud-object-storage.cloud.ibm.com/v1/b/{my-bucket} \
-H 'authorization: bearer $IAM_TOKEN' \
-d '{"firewall": {"allowed_ip": ["10.142.175.0/22", "10.198.243.79"]}}'
Habilitación del seguimiento de actividad
Tenga en cuenta que el punto final de la API de configuración no es el mismo que el punto final del grupo en sí. Utilice este mandato para habilitar el seguimiento de actividad para el grupo especificado.
curl -X PATCH https://config.cloud-object-storage.cloud.ibm.com/v1/b/{my-bucket} \
-H 'authorization: bearer <IAM_token>' \
-d '{"activity_tracking": { \
"read_data_events": True, \
"write_data_events": True}'
Cómo permitir el acceso anónimo a un objeto
curl -X "PUT" "https://(endpoint)/(bucket-name)/(object-key)?acl"
-H "Content-Type: (content-type)"
-H "Authorization: bearer (token)"
-H "x-amz-acl: public-read"
Supresión de un objeto
curl -X "DELETE" "https://(endpoint)/(bucket-name)/(object-key)"
-H "Authorization: bearer (token)"
Supresión de varios objetos
curl -X "POST" "https://(endpoint)/(bucket-name)?delete"
-H "Content-MD5: (md5-hash)"
-H "Authorization: bearer (token)"
-H "Content-Type: text/plain; charset=utf-8"
-d "<?xml version="1.0" encoding="UTF-8"?>
<Delete>
<Object>
<Key>(first-object)</Key>
</Object>
<Object>
<Key>(second-object)</Key>
</Object>
</Delete>"
La cabecera Content-MD5
tiene que ser la representación binaria de un hash MD5 codificado en base64.
echo -n (XML block) | openssl dgst -md5 -binary | openssl enc -base64
Inicio de una carga de varias partes
curl -X "POST" "https://(endpoint)/(bucket-name)/(object-key)?uploads"
-H "Authorization: bearer (token)"
Carga de una parte
curl -X "PUT" "https://(endpoint)/(bucket-name)/(object-key)?partNumber=(sequential-integer)&uploadId=(upload-id)"
-H "Authorization: bearer (token)"
-H "Content-Type: (content-type)"
Finalización de una carga de varias partes
curl -X "POST" "https://(endpoint)/(bucket-name)/(object-key)?uploadId=(upload-id)"
-H "Authorization: bearer (token)"
-H "Content-Type: text/plain; charset=utf-8"
-d "<CompleteMultipartUpload>
<Part>
<PartNumber>1</PartNumber>
<ETag>(etag)</ETag>
</Part>
<Part>
<PartNumber>2</PartNumber>
<ETag>(etag)</ETag>
</Part>
</CompleteMultipartUpload>"
Obtención de cargas de varias partes incompletas
curl "https://(endpoint)/(bucket-name)/?uploads"
-H "Authorization: bearer (token)"
Detención de cargas de varias partes incompletas
curl -X "DELETE" "https://(endpoint)/(bucket-name)/(object-key)?uploadId"
-H "Authorization: bearer (token)"
Configurar un sitio web estático
curl --location --request PUT 'https://<endpoint>/<bucketname>?website' \
--header 'Authorization: bearer <token>' --header 'ibm-service-instance-id: <resource_instance_id> \
--header 'Content-MD5: <hashed-output>' --header 'Content-Type: text/plain' \
--data-raw '<WebsiteConfiguration>
<IndexDocument>
<Suffix>index.html</Suffix>
</IndexDocument>
<ErrorDocument>
<Key>error.html</Key>
</ErrorDocument>
</WebsiteConfiguration>'
Como recordatorio, la cabecera Content-MD5
debe ser la representación binaria de un hash base64-encoded MD5.
echo -n (XML block) | openssl dgst -md5 -binary | openssl enc -base64
Próximos pasos
La descripción detallada de la API RESTful para IBM Cloud Object Storage se puede encontrar en la documentación de la API de compatibilidad deS3 o en la documentación de la API de configuración.