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.