Utilizzo cURL
Puoi ottenere risultati ottimali utilizzando la riga di comando nella maggior parte degli ambienti con IBM Cloud® Object Storage e cURL.
Di seguito troverai una scheda di riferimento dei comandi curl di base per l'API REST di IBM Cloud® Object Storage. Puoi trovare ulteriori dettagli nella guida di riferimento API per i bucket o gli oggetti.
L'utilizzo di curl presuppone una certa familiarità con la riga di comando e Object Storage e l'avere a disposizione le informazioni necessarie da una credenziale del servizio,
dal riferimento endpoint o dalla console. Se ci sono termini
o variabili che non ti sono familiari, puoi trovarli nel glossario.
Nota: PII (Personally Identifiable Information): quando si denominano bucket o oggetti, non utilizzare alcuna informazione che possa identificare un utente (persona fisica) in base al nome, alla posizione o a qualsiasi altro mezzo.
Richiedi un token IAM
Puoi generare un token IAM oauth per l'autenticazione delle richieste utilizzando un comando curl con una chiave API (descritta in seguito) o dalla riga di comando utilizzando CLI IBM Cloud®.
Richiedi un token IAM utilizzando una chiave API
Assicurarsi di disporre di una chiave API. Puoi ottenerne una da 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"
Ottieni il tuo ID dell'istanza della risorsa
Alcuni dei seguenti comandi richiedono un parametro ibm-service-instance-id. Per trovare questo valore, vai alla scheda Credenziali del servizio della tua istanza Object Storage nella console cloud. Crea una credenziale,
se necessario, quindi utilizza il menu Visualizza credenziali per vedere il formato JSON. Utilizza il valore di resource_instance_id.
Per l'utilizzo con le API curl, hai bisogno solo dell'UUID che inizia dopo l'ultimo singolo due punti e che termina prima del doppio due punti finale. Ad esempio, l'ID crn:v1:bluemix:public:cloud-object-storage:global:a/81caa0254631ce5f9330ae427618f209:39d8d161-22c4-4b77-a856-f11db5130d7d:: può essere abbreviato in 39d8d161-22c4-4b77-a856-f11db5130d7d.
Elenca i bucket
curl "https://(endpoint)/"
-H "Authorization: bearer (token)"
-H "ibm-service-instance-id: (resource-instance-id)"
Aggiungi un bucket
curl -X "PUT" "https://(endpoint)/(bucket-name)"
-H "Authorization: Bearer (token)"
-H "ibm-service-instance-id: (resource-instance-id)"
Aggiungi un bucket (classe di archiviazione)
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>"
È possibile che si faccia riferimento a un elenco di codici validi per LocationConstraint nella guida alle classi di archiviazione.
Crea un CORS del bucket
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'intestazione Content-MD5 deve essere la rappresentazione binaria di un hash MD5 con codifica base64.
echo -n (XML block) | openssl dgst -md5 -binary | openssl enc -base64
Ottieni un CORS del bucket
curl "https://(endpoint)/(bucket-name)/?cors"
-H "Authorization: bearer (token)"
Elimina un CORS del bucket
curl -X "DELETE" "https://(endpoint)/(bucket-name)/?cors"
-H "Authorization: bearer (token)"
Elenca gli oggetti
curl "https://(endpoint)/(bucket-name)"
-H "Authorization: bearer (token)"
Ottieni le intestazioni del bucket
curl --head "https://(endpoint)/(bucket-name)/"
-H "Authorization: bearer (token)"
Ottieni i metadati del bucket
L'utilizzo dell'endpoint API di configurazione non è uguale all'endpoint per il tuo bucket stesso. L'utilizzo di questo comando restituisce i metadati per il bucket specificato.
curl https://config.cloud-object-storage.cloud.ibm.com/v1/b/{my-bucket} \
-H 'authorization: bearer <IAM_token>'
Elimina un bucket
curl -X "DELETE" "https://(endpoint)/(bucket-name)/"
-H "Authorization: bearer (token)"
Carica un oggetto
curl -X "PUT" "https://(endpoint)/(bucket-name)/(object-key)" \
-H "Authorization: bearer (token)" \
-H "Content-Type: (content-type)" \
-d "(object-contents)"
Ottieni le intestazioni di un oggetto
curl --head "https://(endpoint)/(bucket-name)/(object-key)"
-H "Authorization: bearer (token)"
Copia un oggetto
curl -X "PUT" "https://(endpoint)/(bucket-name)/(object-key)"
-H "Authorization: bearer (token)"
-H "x-amz-copy-source: /(bucket-name)/(object-key)"
Controlla le informazioni sul CORS
curl -X "OPTIONS" "https://(endpoint)/(bucket-name)/(object-key)"
-H "Access-Control-Request-Method: PUT"
-H "Origin: http://(url)"
Scarica un oggetto
curl "https://(endpoint)/(bucket-name)/(object-key)"
-H "Authorization: bearer (token)"
Controlla l'ACL dell'oggetto
curl "https://(endpoint)/(bucket-name)/(object-key)?acl"
-H "Authorization: bearer (token)"
Abilita un firewall
L'utilizzo dell'endpoint API di configurazione non è uguale all'endpoint per il tuo bucket stesso. L'utilizzo di questo comando abilita un firewall per il bucket specificato. Nessun altro servizio IBM Cloud® può accedere al bucket quando il firewall è attivo.
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"]}}'
Abilita la traccia delle attività
Nota: l'uso dell'endpoint API di configurazione non è equivalente all'endpoint per il tuo bucket stesso. L'utilizzo di questo comando abilita la traccia delle attività per il bucket specificato.
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}'
Consenti l'accesso anonimo a un oggetto
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"
Elimina un oggetto
curl -X "DELETE" "https://(endpoint)/(bucket-name)/(object-key)"
-H "Authorization: bearer (token)"
Elimina molti oggetti
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'intestazione Content-MD5 deve essere la rappresentazione binaria di un hash MD5 con codifica base64.
echo -n (XML block) | openssl dgst -md5 -binary | openssl enc -base64
Avvia un caricamento in più parti
curl -X "POST" "https://(endpoint)/(bucket-name)/(object-key)?uploads"
-H "Authorization: bearer (token)"
Caricare 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)"
Completa un caricamento in più parti
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>"
Ottieni i caricamenti in più parti incompleti
curl "https://(endpoint)/(bucket-name)/?uploads"
-H "Authorization: bearer (token)"
Arresta i caricamenti in più parti incompleti
curl -X "DELETE" "https://(endpoint)/(bucket-name)/(object-key)?uploadId"
-H "Authorization: bearer (token)"
Configura un sito Web statico
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>'
Come promemoria, l'intestazione Content-MD5 deve essere la rappresentazione binaria di un hash base64-encoded MD5.
echo -n (XML block) | openssl dgst -md5 -binary | openssl enc -base64
Passi successivi
La descrizione dettagliata dell'API RESTful per IBM Cloud Object Storage è disponibile nella Documentazione API di compatibilitàS3 o nella Documentazione API di configurazione.