cURL verwenden
Am besten lässt sich die Befehlszeile in den meisten Umgebungen mit IBM Cloud® Object Storage und cURL nutzen.
Im Folgenden finden Sie ein Cheat-Sheet der grundlegenden curl-Befehle für die IBM Cloud® Object Storage-REST-API. Weiterführende Details finden Sie in der API-Referenz für Buckets oder Objekte.
Die Verwendung von curl erfordert Kenntnisse zur Befehlszeile und zu Object Storage. Des Weiteren benötigen Sie die erforderlichen Informationen aus einem Serviceberechtigungsnachweis,
aus der Endpunktreferenz oder aus der Konsole. Unbekannte
Begriffe oder Variablen finden Sie im Glossar.
Hinweis: Personenbezogene Daten (Personally Identifiable Information, PII): Verwenden Sie beim Benennen von Buckets oder Objekten keine Informationen, die einen Benutzer (natürliche Person) anhand des Namens, des Standorts oder auf andere Weise identifizieren können.
IAM-Token anfordern
Zum Generieren eines IAM-Tokens vom Typ oauth für die Authentifizierung von Anforderungen gibt es zwei Möglichkeiten: Verwendung eines curl-Befehls mit einem API-Schlüssel (siehe unten) oder Verwendung der Befehlszeile
über die IBM Cloud®-CLI.
IAM-Token mit API-Schlüssel anfordern
Stellen Sie sicher, dass Sie über einen API-Schlüssel verfügen. Sie können ihn über IBM Cloud® Identity and Access Management anfordern.
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"
Ressourceninstanz-ID abrufen
Für einige der folgenden Befehle ist der Parameter ibm-service-instance-id erforderlich. Um diesen Wert zu ermitteln, rufen Sie die Registerkarte Serviceberechtigungsnachweise Ihrer Object Storage-Instanz in der
Cloudkonsole auf. Erstellen Sie bei Bedarf einen Berechtigungsnachweis und verwenden Sie dann das Menü Berechtigungsnachweise anzeigen, um das JSON-Format anzuzeigen. Verwenden Sie den Wert von resource_instance_id.
Zur Verwendung mit curl-APIs benötigen Sie nur die UUID, die nach dem letzten einfachen Doppelpunkt beginnt und vor dem letzten doppelten Doppelpunkt endet. Beispiel: Die ID crn:v1:bluemix:public:cloud-object-storage:global:a/81caa0254631ce5f9330ae427618f209:39d8d161-22c4-4b77-a856-f11db5130d7d:: kann mit 39d8d161-22c4-4b77-a856-f11db5130d7d abgekürzt werden.
Buckets auflisten
curl "https://(endpoint)/"
-H "Authorization: bearer (token)"
-H "ibm-service-instance-id: (resource-instance-id)"
Bucket hinzufügen
curl -X "PUT" "https://(endpoint)/(bucket-name)"
-H "Authorization: Bearer (token)"
-H "ibm-service-instance-id: (resource-instance-id)"
Bucket hinzufügen (Speicherklasse)
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>"
Eine Liste gültiger Codes für LocationConstraint finden Sie im Handbuch für Speicherklassen.
Bucket-CORS erstellen
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>"
Der Header Content-MD5 muss die binäre Darstellung eines Base64-codierten MD5-Hashwerts sein.
echo -n (XML block) | openssl dgst -md5 -binary | openssl enc -base64
Bucket-CORS abrufen
curl "https://(endpoint)/(bucket-name)/?cors"
-H "Authorization: bearer (token)"
Bucket-CORS löschen
curl -X "DELETE" "https://(endpoint)/(bucket-name)/?cors"
-H "Authorization: bearer (token)"
Objekte auflisten
curl "https://(endpoint)/(bucket-name)"
-H "Authorization: bearer (token)"
Bucket-Header abrufen
curl --head "https://(endpoint)/(bucket-name)/"
-H "Authorization: bearer (token)"
Bucketmetadaten abrufen
Die Verwendung des API-Konfigurationsendpunkts entspricht nicht dem Endpunkt für Ihr Bucket selbst. Mit diesem Befehl können die Metadaten für das angegebene Bucket zurückgegeben werden.
curl https://config.cloud-object-storage.cloud.ibm.com/v1/b/{my-bucket} \
-H 'authorization: bearer <IAM_token>'
Bucket löschen
curl -X "DELETE" "https://(endpoint)/(bucket-name)/"
-H "Authorization: bearer (token)"
Objekt hochladen
curl -X "PUT" "https://(endpoint)/(bucket-name)/(object-key)" \
-H "Authorization: bearer (token)" \
-H "Content-Type: (content-type)" \
-d "(object-contents)"
Header eines Objekts abrufen
curl --head "https://(endpoint)/(bucket-name)/(object-key)"
-H "Authorization: bearer (token)"
Objekt kopieren
curl -X "PUT" "https://(endpoint)/(bucket-name)/(object-key)"
-H "Authorization: bearer (token)"
-H "x-amz-copy-source: /(bucket-name)/(object-key)"
CORS-Informationen überprüfen
curl -X "OPTIONS" "https://(endpoint)/(bucket-name)/(object-key)"
-H "Access-Control-Request-Method: PUT"
-H "Origin: http://(url)"
Objekt herunterladen
curl "https://(endpoint)/(bucket-name)/(object-key)"
-H "Authorization: bearer (token)"
ACL des Objekts prüfen
curl "https://(endpoint)/(bucket-name)/(object-key)?acl"
-H "Authorization: bearer (token)"
Firewall aktivieren
Die Verwendung des API-Konfigurationsendpunkts entspricht nicht dem Endpunkt für Ihr Bucket selbst. Mit diesem Befehl kann eine Firewall für das angegebene Bucket aktiviert werden. Wenn diese Firewall aktiv ist, dann können keine anderen IBM Cloud®-Services auf das Bucket zugreifen.
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"]}}'
Aktivitätsüberwachung aktivieren
Beachten Sie, dass die Verwendung des API-Endpunkts für die Konfiguration nicht mit der Verwendung des Endpunkts für Ihr Bucket selbst identisch ist. Mit diesem Befehl kann die Aktivitätsüberwachung für das angegebene Bucket aktiviert werden.
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}'
Anonymen Zugriff auf Objekt zulassen
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"
Objekt löschen
curl -X "DELETE" "https://(endpoint)/(bucket-name)/(object-key)"
-H "Authorization: bearer (token)"
Mehrere Objekte löschen
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>"
Der Header Content-MD5 muss die binäre Darstellung eines Base64-codierten MD5-Hashwerts sein.
echo -n (XML block) | openssl dgst -md5 -binary | openssl enc -base64
Mehrteiligen Upload starten
curl -X "POST" "https://(endpoint)/(bucket-name)/(object-key)?uploads"
-H "Authorization: bearer (token)"
Teil hochladen
curl -X "PUT" "https://(endpoint)/(bucket-name)/(object-key)?partNumber=(sequential-integer)&uploadId=(upload-id)"
-H "Authorization: bearer (token)"
-H "Content-Type: (content-type)"
Mehrteiligen Upload ausführen
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>"
Unvollständige mehrteilige Uploads abrufen
curl "https://(endpoint)/(bucket-name)/?uploads"
-H "Authorization: bearer (token)"
Unvollständige mehrteilige Uploads stoppen
curl -X "DELETE" "https://(endpoint)/(bucket-name)/(object-key)?uploadId"
-H "Authorization: bearer (token)"
Statische Website konfigurieren
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>'
Zur Erinnerung: Der Content-MD5-Header muss die binäre Darstellung eines base64-encoded MD5-Hashs sein.
echo -n (XML block) | openssl dgst -md5 -binary | openssl enc -base64
Nächste Schritte
Eine detaillierte Beschreibung der REST-konformen API für IBM Cloud Object Storage finden Sie in der Dokumentation zurS3 Compatibility API oder in der Dokumentation zur Konfigurations-API.