Utilisation cURL
L'utilisation de la ligne de commande dans la plupart des environnements vous permet de tirer le maximum d'IBM Cloud® Object Storage et de cURL
.
Voici un "aide-mémoire" des commandes curl
de base pour l'API REST d'IBM Cloud® Object Storage. Vous trouverez plus de détails dans la référence d'API pour les compartiments ou les objets.
L'utilisation de curl
suppose de posséder des connaissances suffisantes sur la ligne de commande et Object Storage, et de disposer des informations nécessaires à partir des données d'identification de service,
du guide de référence des noeuds finaux ou de la console.
Si des termes ou des variables ne vous sont pas familiers, vous pourrez les retrouver dans le glossaire.
Remarque: informations identifiant la personne (PII): Lorsque vous nommez des compartiments ou des objets, n'utilisez pas d'informations pouvant identifier un utilisateur (personne physique) par son nom, son emplacement ou tout autre moyen.
Demande de jeton IAM
Les deux manières de générer un jeton oauth
IAM pour l'authentification des demandes sont l'utilisation d'une commande curl
avec une clé d'API (décrite un peu plus loin) ou à partir de la ligne de commande en utilisant
l'interface de ligne de commande d'IBM Cloud®.
Demande de jeton IAM à l'aide d'une clé d'API
Vérifiez que vous disposez d'une clé d'API. Vous pouvez en obtenir une à partir d'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"
Obtention de votre ID d'instance de ressource
Certaines des commandes ci-après requièrent un paramètre ibm-service-instance-id
. Pour trouver cette valeur, accédez à l'onglet Données d'identification pour le service de votre instance Object Storage dans la console
IBM Cloud. Si nécessaire, créez des données d'identification, puis utilisez le menu Afficher les données d'identification pour voir le format JSON. Utilisez la valeur de resource_instance_id
.
Pour utiliser des API curl, vous n'avez besoin que de l'identificateur unique universel (UUID) qui débute après le dernier signe deux-points et se termine avant le double signe deux-points final. Par exemple, l'ID crn:v1:bluemix:public:cloud-object-storage:global:a/81caa0254631ce5f9330ae427618f209:39d8d161-22c4-4b77-a856-f11db5130d7d::
peut être abrégé en 39d8d161-22c4-4b77-a856-f11db5130d7d
.
Création d'une liste de compartiments
curl "https://(endpoint)/"
-H "Authorization: bearer (token)"
-H "ibm-service-instance-id: (resource-instance-id)"
Ajouter un compartiment
curl -X "PUT" "https://(endpoint)/(bucket-name)"
-H "Authorization: Bearer (token)"
-H "ibm-service-instance-id: (resource-instance-id)"
Ajout d'un compartiment (classe de stockage)
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>"
Une liste de codes valides pour LocationConstraint
peut être référencée dans le guide sur les classes de stockage.
Création d'un partage de ressources d'origine croisée pour un compartiment
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>"
L'en-tête Content-MD5
doit être la représentation binaire d'un hachage MD5 codé en base 64.
echo -n (XML block) | openssl dgst -md5 -binary | openssl enc -base64
Obtention d'un partage de ressources d'origine croisée pour un compartiment
curl "https://(endpoint)/(bucket-name)/?cors"
-H "Authorization: bearer (token)"
Suppression d'un partage de ressources d'origine croisée pour un compartiment
curl -X "DELETE" "https://(endpoint)/(bucket-name)/?cors"
-H "Authorization: bearer (token)"
Création d'une liste d'objets
curl "https://(endpoint)/(bucket-name)"
-H "Authorization: bearer (token)"
Obtention d'en-têtes de compartiment
curl --head "https://(endpoint)/(bucket-name)/"
-H "Authorization: bearer (token)"
Obtention de métadonnées de compartiment
L'utilisation du noeud final d'API de configuration n'est pas la même que celle du noeud final de votre compartiment lui-même. L'utilisation de cette commande renvoie des métadonnées pour le compartiment spécifié.
curl https://config.cloud-object-storage.cloud.ibm.com/v1/b/{my-bucket} \
-H 'authorization: bearer <IAM_token>'
Suppression d'un compartiment
curl -X "DELETE" "https://(endpoint)/(bucket-name)/"
-H "Authorization: bearer (token)"
Envoi par téléchargement d'un objet
curl -X "PUT" "https://(endpoint)/(bucket-name)/(object-key)" \
-H "Authorization: bearer (token)" \
-H "Content-Type: (content-type)" \
-d "(object-contents)"
Obtention des en-têtes d'un objet
curl --head "https://(endpoint)/(bucket-name)/(object-key)"
-H "Authorization: bearer (token)"
Copie d'un objet
curl -X "PUT" "https://(endpoint)/(bucket-name)/(object-key)"
-H "Authorization: bearer (token)"
-H "x-amz-copy-source: /(bucket-name)/(object-key)"
Vérification des informations relatives à un partage de ressources d'origine croisée
curl -X "OPTIONS" "https://(endpoint)/(bucket-name)/(object-key)"
-H "Access-Control-Request-Method: PUT"
-H "Origin: http://(url)"
Réception par téléchargement d'un objet
curl "https://(endpoint)/(bucket-name)/(object-key)"
-H "Authorization: bearer (token)"
Vérification de la liste de contrôle d'accès d'un objet
curl "https://(endpoint)/(bucket-name)/(object-key)?acl"
-H "Authorization: bearer (token)"
Activation d'un pare-feu
L'utilisation du noeud final d'API de configuration n'est pas la même que celle du noeud final de votre compartiment lui-même. L'utilisation de cette commande active un pare-feu pour le compartiment spécifié. Aucun autre service IBM Cloud® ne peut accéder au compartiment lorsque le pare-feu est actif.
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"]}}'
Activation du suivi des activités
Notez que l'utilisation du noeud final d'API config n'est pas la même que le noeud final de votre compartiment proprement dit. L'utilisation de cette commande active le suivi des activités pour le compartiment spécifié.
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}'
Activation de l'accès anonyme à un objet
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"
Suppression d'un objet
curl -X "DELETE" "https://(endpoint)/(bucket-name)/(object-key)"
-H "Authorization: bearer (token)"
Suppression de plusieurs objets
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>"
L'en-tête Content-MD5
doit être la représentation binaire d'un hachage MD5 codé en base 64.
echo -n (XML block) | openssl dgst -md5 -binary | openssl enc -base64
Démarrage d'un envoi par téléchargement en plusieurs parties
curl -X "POST" "https://(endpoint)/(bucket-name)/(object-key)?uploads"
-H "Authorization: bearer (token)"
Remonter une partie
curl -X "PUT" "https://(endpoint)/(bucket-name)/(object-key)?partNumber=(sequential-integer)&uploadId=(upload-id)"
-H "Authorization: bearer (token)"
-H "Content-Type: (content-type)"
Achèvement d'un envoi par téléchargement en plusieurs parties
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>"
Obtention d'envois par téléchargement en plusieurs parties qui sont incomplets
curl "https://(endpoint)/(bucket-name)/?uploads"
-H "Authorization: bearer (token)"
Arrêt d'envois par téléchargement en plusieurs parties qui sont incomplets
curl -X "DELETE" "https://(endpoint)/(bucket-name)/(object-key)?uploadId"
-H "Authorization: bearer (token)"
Configurer un site Web statique
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>'
Pour rappel, l'en-tête Content-MD5
doit être la représentation binaire d'un hachage MD5 base64-encoded.
echo -n (XML block) | openssl dgst -md5 -binary | openssl enc -base64
Etapes suivantes
La description détaillée de l'API RESTful pour IBM Cloud Object Storage est disponible dans la documentation de l'API de compatibilitéS3 ou dans la documentation de l'API de configuration.