Bucketoperationen

Die modernen Funktionen von IBM Cloud® Object Storage sind bequem über eine RESTful-API verfügbar. Hier werden Operationen und Methoden dokumentiert, die für die Interaktion mit Buckets (in denen Objekte gespeichert werden) verwendet werden.

Weitere Informationen zu den Berechtigungen und zum Zugriff finden Sie unter Bucket permissions.

Hinweis zur HMAC-Authentifizierung (HMAC = Access/Secret Key)

Bei der Authentifizierung bei Ihrer Instanz von IBM Cloud® Object Storage mithilfe von HMAC-Berechtigungsnachweisen benötigen Sie die Informationen, die in Tabelle 1 dargestellt sind, wenn Sie eine HMAC-Signatur erstellen.

HMAC-Signaturkomponenten
Schlüssel Wert Beispiel
{access_key} Zugriffsschlüssel, der Ihren Service-Anmeldedaten zugewiesen ist cf4965cebe074720a4929759f57e1214
{date} Das formatierte Datum Ihrer Anforderung (yyyymmdd). 20180613
{region} Der Positionscode für Ihren Endpunkt. us-standard
{signature} Der Hashwert, der unter Verwendung des geheimen Schlüssels, der Position und des Datums erstellt wird. ffe2b6e18f9dcc41f593f4dbb39882a6bb4d26a73a04326e62a8d344e07c1a3e
{timestamp} Das formatierte Datum und die formatierte Uhrzeit Ihrer Anfrage. 20180614T001804Z

Buckets auflisten

Ein „ GET “-Aufruf, der an den Endpunkt „root“ gesendet wird, gibt eine Liste der Buckets zurück, die der angegebenen Service-Instanz zugeordnet sind. Weitere Informationen zu Endpunkten enthält Endpunkte und Speicherpositionen.

Header
Überschrift Typ Erforderlich? Beschreibung
ibm-service-instance-id Zeichenfolge Ja Listet Buckets auf, die in dieser Serviceinstanz erstellt wurden.
Abfrageparameter
Abfrageparameter Wert Erforderlich? Beschreibung
extended Keine Nein Stellt in der Auflistung Metadaten zu „ LocationConstraint “ und „ CreationTemplateId “ bereit.

Syntax

GET https://{endpoint}/

Beispielanfrage

GET / HTTP/1.1
Authorization: Bearer {token}
Content-Type: text/plain
Host: s3.us.cloud-object-storage.appdomain.cloud
ibm-service-instance-id: {ibm-service-instance-id}

Beispielanfrage

GET / HTTP/1.1
Authorization: 'AWS4-HMAC-SHA256 Credential={access-key}/{date}/{region}/s3/aws4_request,SignedHeaders=host;x-amz-date;,Signature={signature}'
x-amz-date: {timestamp}
Content-Type: text/plain
Host: s3.us.cloud-object-storage.appdomain.cloud

Beispielantwort

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ListAllMyBucketsResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
    <Owner>
        <ID>{account-id}</ID>
        <DisplayName>{account-id}</DisplayName>
    </Owner>
    <Buckets>
        <Bucket>
            <Name>bucket-27200-lwx4cfvcue</Name>
            <CreationDate>2016-08-18T14:21:36.593Z</CreationDate>
        </Bucket>
        <Bucket>
            <Name>bucket-27590-drqmydpfdv</Name>
            <CreationDate>2016-08-18T14:22:32.366Z</CreationDate>
        </Bucket>
        <Bucket>
            <Name>bucket-27852-290jtb0n2y</Name>
            <CreationDate>2016-08-18T14:23:03.141Z</CreationDate>
        </Bucket>
        <Bucket>
            <Name>bucket-28731-k0o1gde2rm</Name>
            <CreationDate>2016-08-18T14:25:09.599Z</CreationDate>
        </Bucket>
    </Buckets>
</ListAllMyBucketsResult>

Erweiterte Liste abrufen

Syntax

GET https://{endpoint}/?extended

Beispielanfrage

GET /?extended HTTP/1.1
Authorization: Bearer {token}
Content-Type: text/plain
Host: s3.us.cloud-object-storage.appdomain.cloud
ibm-service-instance-id: {ibm-service-instance-id}

Beispielanfrage

GET /?extended HTTP/1.1
Authorization: 'AWS4-HMAC-SHA256 Credential={access-key}/{date}/{region}/s3/aws4_request,SignedHeaders=host;x-amz-date;,Signature={signature}'
x-amz-date: {timestamp}
Content-Type: text/plain
Host: s3.us.cloud-object-storage.appdomain.cloud

Beispielantwort

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ListAllMyBucketsResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
    <Owner>
        <ID>{account-id}</ID>
        <DisplayName>{account-id}</DisplayName>
    </Owner>
    <IsTruncated>false</IsTruncated>
    <MaxKeys>1000</MaxKeys>
    <Prefix/>
    <Marker/>
    <Buckets>
        <Bucket>
            <Name>bucket-27200-lwx4cfvcue</Name>
            <CreationDate>2016-08-18T14:21:36.593Z</CreationDate>
            <LocationConstraint>us-south-standard</LocationConstraint>
        </Bucket>
        <Bucket>
            <Name>bucket-27590-drqmydpfdv</Name>
            <CreationDate>2016-08-18T14:22:32.366Z</CreationDate>
            <LocationConstraint>us-standard</LocationConstraint>
        </Bucket>
        <Bucket>
            <Name>bucket-27852-290jtb0n2y</Name>
            <CreationDate>2016-08-18T14:23:03.141Z</CreationDate>
            <LocationConstraint>eu-standard</LocationConstraint>
        </Bucket>
        <Bucket>
            <Name>bucket-28731-k0o1gde2rm</Name>
            <CreationDate>2016-08-18T14:25:09.599Z</CreationDate>
            <LocationConstraint>us-cold</LocationConstraint>
        </Bucket>
    </Buckets>
</ListAllMyBucketsResult>

Bucket erstellen

Eine PUT-Anforderung, die an das Endpunktstammverzeichnis gesendet wird und auf die eine Zeichenfolge folgt, erstellt ein Bucket. Weitere Informationen zu Endpunkten enthält Endpunkte und Speicherpositionen. Bucket-Namen müssen global eindeutig und DNS-konform sein. Namen mit einer Länge zwischen 3 und 63 Zeichen müssen aus Kleinbuchstaben, Zahlen, Punkten und Bindestrichen bestehen. Bucketnamen müssen mit einem Kleinbuchstaben oder einer Ziffer anfangen und enden. Bucketnamen dürfen keine aufeinanderfolgenden Punkte oder Gedankenstriche enthalten. Bucket-Namen, die IP-Adressen ähneln, sind nicht zulässig. Diese Operation verwendet keine operationsspezifischen Abfrageparameter.

Bucketnamen müssen eindeutig sein, weil alle Buckets in der öffentlichen Cloud einen gemeinsamen Namensbereich verwenden. Diese Anforderung ermöglicht den Zugriff auf einen Bucket, ohne dass Angaben zu einer Service-Instanz oder zu einem Konto gemacht werden müssen. Des Weiteren ist es nicht möglich, ein Bucket mit einem Namen zu erstellen, der mit der Zeichenfolge cosv1- oder account- beginnt, da diese Präfixe für das System reserviert sind.

Header
Überschrift Typ Erforderlich? Beschreibung
ibm-service-instance-id Zeichenfolge Ja Dieser Header verweist auf die Service-Instanz, in der der Bucket angelegt werden soll und der die Datennutzung in Rechnung gestellt werden kann.
x-amz-bucket-object-lock-enabled Boolescher Wert Nein Gibt an, ob Sie die Objektsperre für das neue Bucket aktivieren wollen. Dieser Header aktiviert automatisch die Versionssteuerung.

Stellen Sie beim Festlegen der Objektsperre für ein neues Bucket sicher, dass der Header x-amz-bucket-object-lock-enabled keine Schreibfehler enthält. Wenn entweder der Header oder der Wert falsch geschrieben ist, wird das Bucket erstellt, aber die Objektsperre und -versionierung ist nicht aktiviert.

Personenbezogene Daten (PII): Verwenden Sie beim Erstellen von Buckets oder beim Hinzufügen von Objekten keine Informationen, die einen Nutzer (eine natürliche Person) anhand seines Namens, seines Standorts oder auf andere Weise identifizieren könnten, im Namen des Buckets oder Objekts.

Syntax

PUT https://{endpoint}/{bucket-name} # path style
PUT https://{bucket-name}.{endpoint} # virtual host style

Beispielanfrage

Im folgenden Beispiel wird ein Bucket namens 'images' erstellt.

PUT /images HTTP/1.1
Authorization: Bearer {token}
Content-Type: text/plain
Host: s3.us.cloud-object-storage.appdomain.cloud
ibm-service-instance-id: {ibm-service-instance-id}

Beispielanfrage

PUT /images HTTP/1.1
Authorization: 'AWS4-HMAC-SHA256 Credential={access-key}/{date}/{region}/s3/aws4_request,SignedHeaders=host;x-amz-date;,Signature={signature}'
x-amz-date: {timestamp}
Content-Type: text/plain
Host: s3.us.cloud-object-storage.appdomain.cloud

Beispielantwort

HTTP/1.1 200 OK
Date: Wed, 24 Aug 2016 17:45:25 GMT
X-Clv-Request-Id: dca204eb-72b5-4e2a-a142-808d2a5c2a87
Accept-Ranges: bytes
Server: Cleversafe/3.9.0.115
X-Clv-S3-Version: 2.5
x-amz-request-id: dca204eb-72b5-4e2a-a142-808d2a5c2a87
Content-Length: 0

Bucket mit anderer Speicherklasse erstellen

Um einen Bucket mit einer anderen Speicherklasse zu erstellen, senden Sie einen XML-Block, der eine Bucket-Konfiguration mit dem Wert „ LocationConstraint “ von „ {provisioning code} “ im Hauptteil einer „ PUT “-Anfrage an einen Bucket-Endpunkt. Weitere Informationen zu Endpunkten enthält Endpunkte und Speicherpositionen. Es gelten die Namensregeln für Standardbuckets. Diese Operation verwendet keine operationsspezifischen Abfrageparameter.

| | Überschrift | Typ | Beschreibung | |--------------------------|--------|--------------------------------------------------------------------------------------------------------------------- | ibm-service-instance-id | Zeichenfolge | Dieser Header verweist auf die Service-Instanz, in der der Bucket angelegt werden soll und der die Datennutzung in Rechnung gestellt werden kann. |

Syntax

PUT https://{endpoint}/{bucket-name} # path style
PUT https://{bucket-name}.{endpoint} # virtual host style

Der Hauptteil der Anforderung muss einen XML-Block mit dem folgenden Schema enthalten:

Körper des Antragsschemas
Element Typ Untergeordnete Elemente Vorfahre Einschränkung
CreateBucketConfiguration Container LocationConstraint
LocationConstraint Zeichenfolge
CreateBucketConfiguration Gültiger Positionscode
<CreateBucketConfiguration>
  <LocationConstraint>us-vault</LocationConstraint>
</CreateBucketConfiguration>

Auf eine Liste gültiger Bereitstellungscodes für LocationConstraint kann im Handbuch für Speicherklassen verwiesen werden.

Beispielanfrage

Im folgenden Beispiel wird ein Bucket namens 'vault-images' erstellt.

PUT /vault-images HTTP/1.1
Authorization: Bearer {token}
Content-Type: text/plain
Host: s3.us.cloud-object-storage.appdomain.cloud
ibm-service-instance-id: {ibm-service-instance-id}
Content-Length: 110

Beispielanfrage

PUT /vault-images HTTP/1.1
Authorization: 'AWS4-HMAC-SHA256 Credential={access-key}/{date}/{region}/s3/aws4_request,SignedHeaders=host;x-amz-date;,Signature={signature}'
x-amz-date: {timestamp}
Content-Type: text/plain
Host: s3.us.cloud-object-storage.appdomain.cloud
<CreateBucketConfiguration>
  <LocationConstraint>us-vault</LocationConstraint>
</CreateBucketConfiguration>

Beispielantwort

HTTP/1.1 200 OK
Date: Fri, 17 Mar 2017 17:52:17 GMT
X-Clv-Request-Id: b6483b2c-24ae-488a-884c-db1a93b9a9a6
Accept-Ranges: bytes
Server: Cleversafe/3.9.0.115
X-Clv-S3-Version: 2.5
Content-Length: 0

Erstellen Sie einen Bucket mit verwalteten Verschlüsselungsschlüsseln von „ Key Protect “ oder „ Hyper Protect Crypto Services “ (SSE-KP)

Um ein Bucket zu erstellen, in dem die Verschlüsselungsschlüssel von Key Protect oder Hyper Protect Crypto Servicesverwaltet werden, ist es erforderlich, auf eine aktive Key Protect-oder Hyper Protect Crypto Services-Serviceinstanz zuzugreifen. Diese Operation verwendet keine operationsspezifischen Abfrageparameter.

Weitere Informationen zur Verwendung von „ Key Protect “ zur Verwaltung Ihrer Verschlüsselungsschlüssel finden Sie in der Dokumentation unter Key Protect.

Weitere Informationen zu Hyper Protect Crypto Servicesfinden Sie in der Dokumentation.

Die verwaltete Verschlüsselung für einen regionenübergreifenden Bucket muss einen Stammschlüssel aus einer Instanz von „ Key Protect “ am nächstgelegenen Standort mit hoher Verfügbarkeit (us-south oder jp-tok) verwenden.

Header
Überschrift Typ Beschreibung
ibm-service-instance-id Zeichenfolge Dieser Header verweist auf die Service-Instanz, in der der Bucket angelegt werden soll und der die Datennutzung in Rechnung gestellt werden kann.
ibm-sse-kp-encryption-algorithm Zeichenfolge Dieser Header dient dazu, den Algorithmus und die Schlüsselgröße anzugeben, die mit dem Verschlüsselungsschlüssel verwendet werden sollen, der mithilfe von „ Key Protect “ gespeichert wurde. Dieser Wert muss auf die Zeichenfolge AES256 gesetzt werden.
ibm-sse-kp-customer-root-key-crn Zeichenfolge Dieser Header dient dazu, auf den spezifischen Root-Schlüssel zu verweisen, der von Key Protect oder Hyper Protect Crypto Services zur Verschlüsselung dieses Buckets verwendet wird. Dieser Wert muss den vollständigen CRN des Rootschlüssels enthalten.

Syntax

PUT https://{endpoint}/{bucket-name} # path style
PUT https://{bucket-name}.{endpoint} # virtual host style

Beispielanfrage

Im folgenden Beispiel wird ein Bucket namens 'secure-files' erstellt.

PUT /secure-files HTTP/1.1
Authorization: Bearer {token}
Content-Type: text/plain
Host: s3.us-south.objectstorage.s3.us-south.cloud-object-storage.appdomain.cloud.net
ibm-service-instance-id: {ibm-service-instance-id}
ibm-sse-kp-encryption-algorithm: "AES256"
ibm-sse-kp-customer-root-key-crn: {customer-root-key-id}

Beispielanfrage

PUT /secure-files HTTP/1.1
Authorization: 'AWS4-HMAC-SHA256 Credential={access-key}/{date}/{region}/s3/aws4_request,SignedHeaders=host;x-amz-date;,Signature={signature}'
x-amz-date: {timestamp}
Content-Type: text/plain
Host: s3.us.cloud-object-storage.appdomain.cloud
ibm-sse-kp-encryption-algorithm: "AES256"
ibm-sse-kp-customer-root-key-crn: {customer-root-key-id}

Beispielantwort

HTTP/1.1 200 OK
Date: Wed, 24 Aug 2016 17:45:25 GMT
X-Clv-Request-Id: dca204eb-72b5-4e2a-a142-808d2a5c2a87
Accept-Ranges: bytes
Server: Cleversafe/3.9.0.115
X-Clv-S3-Version: 2.5
x-amz-request-id: dca204eb-72b5-4e2a-a142-808d2a5c2a87
Content-Length: 0

Header eines Buckets abrufen

Ein für einen Bucket erteilter „ HEAD “ gibt die Header dieses Buckets zurück.

HEAD-Anforderungen geben keinen Hauptteil zurück und können deshalb auch keine spezifischen Fehlernachrichten wie beispielsweise NoSuchBucket zurückgeben, sondern lediglich die Nachricht NotFound.

Syntax

HEAD https://{endpoint}/{bucket-name} # path style
HEAD https://{bucket-name}.{endpoint} # virtual host style

Beispielanfrage

Im folgenden Beispiel werden die Header für das Bucket 'images' abgerufen.

HEAD /images HTTP/1.1
Content-Type: text/plain
Host: s3.us.cloud-object-storage.appdomain.cloud
Authorization:Bearer {token}

Beispielanfrage

HEAD /images HTTP/1.1
Authorization: 'AWS4-HMAC-SHA256 Credential={access-key}/{date}/{region}/s3/aws4_request,SignedHeaders=host;x-amz-date;,Signature={signature}'
x-amz-date: {timestamp}
Content-Type: text/plain
Host: s3.us.cloud-object-storage.appdomain.cloud

Beispielantwort

HTTP/1.1 200 OK
Date: Wed, 24 Aug 2016 17:46:35 GMT
X-Clv-Request-Id: 0c2832e3-3c51-4ea6-96a3-cd8482aca08a
Accept-Ranges: bytes
Server: Cleversafe/3.9.0.115
X-Clv-S3-Version: 2.5
x-amz-request-id: 0c2832e3-3c51-4ea6-96a3-cd8482aca08a
Content-Length: 0

Beispielanfrage

HEAD Anfragen an Buckets mit „ Key Protect “-Verschlüsselung geben zusätzliche Header zurück.

HEAD /secure-files HTTP/1.1
Content-Type: text/plain
Host: s3.us.cloud-object-storage.appdomain.cloud
Authorization:Bearer {token}

Beispielanfrage

HEAD /secure-files HTTP/1.1
Authorization: 'AWS4-HMAC-SHA256 Credential={access-key}/{date}/{region}/s3/aws4_request,SignedHeaders=host;x-amz-date;,Signature={signature}'
x-amz-date: {timestamp}
Content-Type: text/plain
Host: s3.us.cloud-object-storage.appdomain.cloud

Beispielantwort

HTTP/1.1 200 OK
Date: Wed, 24 Aug 2016 17:46:35 GMT
X-Clv-Request-Id: 0c2832e3-3c51-4ea6-96a3-cd8482aca08a
Accept-Ranges: bytes
Server: Cleversafe/3.9.0.115
X-Clv-S3-Version: 2.5
x-amz-request-id: 0c2832e3-3c51-4ea6-96a3-cd8482aca08a
Content-Length: 0
ibm-sse-kp-enabled: True
ibm-sse-kp-crk-id: {customer-root-key-id}

Objekte in einem bestimmten Bucket auflisten (Version 2)

Eine an einen Bucket gerichtete „ GET “-Anfrage liefert eine Liste von Objekten zurück, die auf jeweils 1.000 Objekte begrenzt ist und in nicht-lexikografischer Reihenfolge zurückgegeben wird. Der in der Antwort zurückgegebene Wert „ StorageClass “ ist ein Standardwert, da Operationen der Speicherklasse in „ Object Storage “ nicht implementiert sind. Diese Operation verwendet keine operationsspezifischen Header oder Nutzdatenelemente.

Syntax

GET https://{endpoint}/{bucket-name}?list-type=2 # path style
GET https://{bucket-name}.{endpoint}?list-type=2 # virtual host style

Optionale Abfrageparameter

Optionale Abfrageparameter
Name Typ Beschreibung
list-type Zeichenfolge Gibt Version 2 der API an. Der Wert muss '2' lauten.
prefix Zeichenfolge Beschränkt die Antwort auf Objektnamen, die mit „ prefix “ beginnen.
delimiter Zeichenfolge Gruppiert Objekte zwischen prefix und delimiter.
encoding-type Zeichenfolge Wenn Unicode-Zeichen, die von XML nicht unterstützt werden, in einem Objektnamen verwendet werden, kann für diesen Parameter url angegeben werden, um die Antwort ordnungsgemäß zu codieren.
max-keys Zeichenfolge Beschränkt die Anzahl der Objekte, die in der Antwort angezeigt werden sollen. Der Standardwert und der Maximalwert sind 1.000.
fetch-owner Zeichenfolge Version 2 der API enthält standardmäßig keine Informationen zu Owner. Setzen Sie diesen Parameter auf „ true “, wenn in der Antwort Informationen zu „ Owner “ enthalten sein sollen.
continuation-token Zeichenfolge Gibt die nächste Gruppe von Objekten an, die zurückgegeben werden sollen, wenn Ihre Antwort abgeschnitten wird (Element IsTruncated gibt true zurück).
Ihre erste Antwort enthält das Element „ NextContinuationToken “. Verwenden Sie dieses Token in der nächsten Anforderung als Wert für continuation-token.
start-after Zeichenfolge Gibt Schlüsselnamen nach einem bestimmten Schlüsselobjekt zurück.
Dieser Parameter ist nur in Ihrer ersten Anfrage gültig. Wenn Ihre Anforderung den Parameter continuation-token enthält, dann wird dieser Parameter ignoriert.

Beispielanforderung (einfach)

Diese Anforderung listet die Objekte im Bucket 'apiary' auf.

GET /apiary?list-type=2 HTTP/1.1
Content-Type: text/plain
Host: s3.us.cloud-object-storage.appdomain.cloud
Authorization: Bearer {token}

Beispielanforderung (einfach)

GET /apiary?list-type=2 HTTP/1.1
Authorization: 'AWS4-HMAC-SHA256 Credential={access-key}/{date}/{region}/s3/aws4_request,SignedHeaders=host;x-amz-date;,Signature={signature}'
x-amz-date: {timestamp}
Content-Type: text/plain
Host: s3.us.cloud-object-storage.appdomain.cloud

Beispielantwort (einfach)

HTTP/1.1 200 OK
Date: Wed, 24 Aug 2016 17:36:24 GMT
X-Clv-Request-Id: 9f39ff2e-55d1-461b-a6f1-2d0b75138861
Accept-Ranges: bytes
Server: Cleversafe/3.13.3.57
X-Clv-S3-Version: 2.5
x-amz-request-id: 9f39ff2e-55d1-461b-a6f1-2d0b75138861
Content-Type: application/xml
Content-Length: 814
<ListBucketResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
  <Name>apiary</Name>
  <Prefix/>
  <KeyCount>3</KeyCount>
  <MaxKeys>1000</MaxKeys>
  <Delimiter/>
  <IsTruncated>false</IsTruncated>
  <Contents>
    <Key>drone-bee</Key>
    <LastModified>2016-08-25T17:38:38.549Z</LastModified>
    <ETag>"0cbc6611f5540bd0809a388dc95a615b"</ETag>
    <ChecksumAlgorithm>CRC64NVME</ChecksumAlgorithm>
    <ChecksumType>FULL_OBJECT</ChecksumType>
    <Size>4</Size>
    <StorageClass>STANDARD</StorageClass>
  </Contents>
  <Contents>
    <Key>soldier-bee</Key>
    <LastModified>2016-08-25T17:49:06.006Z</LastModified>
    <ETag>"37d4c94839ee181a2224d6242176c4b5"</ETag>
    <ChecksumAlgorithm>CRC64NVME</ChecksumAlgorithm>
    <ChecksumType>FULL_OBJECT</ChecksumType>
    <Size>11</Size>
    <StorageClass>STANDARD</StorageClass>
  </Contents>
  <Contents>
    <Key>worker-bee</Key>
    <LastModified>2016-08-25T17:46:53.288Z</LastModified>
    <ETag>"d34d8aada2996fc42e6948b926513907"</ETag>
    <ChecksumAlgorithm>CRC64NVME</ChecksumAlgorithm>
    <ChecksumType>FULL_OBJECT</ChecksumType>
    <Size>467</Size>
    <StorageClass>STANDARD</StorageClass>
  </Contents>
</ListBucketResult>

Beispielanforderung (Parameter 'max-keys')

Diese Anforderung listet die Objekte im Bucket 'apiary' auf, wobei die maximale Anzahl zurückgegebener Schlüssel auf '1' gesetzt ist.

GET /apiary?list-type=2&max-keys=1 HTTP/1.1
Content-Type: text/plain
Host: s3.us.cloud-object-storage.appdomain.cloud
Authorization: Bearer {token}

Beispielanfrage (Parameter „max-keys“)

GET /apiary?list-type=2&max-keys=1 HTTP/1.1
Authorization: 'AWS4-HMAC-SHA256 Credential={access-key}/{date}/{region}/s3/aws4_request,SignedHeaders=host;x-amz-date;,Signature={signature}'
x-amz-date: {timestamp}
Content-Type: text/plain
Host: s3.us.cloud-object-storage.appdomain.cloud

Beispielantwort (abgeschnittene Antwort)

HTTP/1.1 200 OK
Date: Wed, 24 Aug 2016 17:36:24 GMT
X-Clv-Request-Id: 9f39ff2e-55d1-461b-a6f1-2d0b75138861
Accept-Ranges: bytes
Server: Cleversafe/3.13.3.57
X-Clv-S3-Version: 2.5
x-amz-request-id: 9f39ff2e-55d1-461b-a6f1-2d0b75138861
Content-Type: application/xml
Content-Length: 598
<ListBucketResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
  <Name>apiary</Name>
  <Prefix/>
  <NextContinuationToken>1dPe45g5uuxjyASPegLq80sQsZKL5OB2by4Iz_7YGR5NjiOENBPZXqvKJN6_PgKGVzZYTlws7qqdWaMklzb8HX2iDxxl72ane3rUFQrvNMeIih49MZ4APUjrAuYI83KxSMmfKHGZyKallFkD5N6PwKg</NextContinuationToken>
  <KeyCount>1</KeyCount>
  <MaxKeys>1</MaxKeys>
  <Delimiter/>
  <IsTruncated>true</IsTruncated>
  <Contents>
    <Key>drone-bee</Key>
    <LastModified>2016-08-25T17:38:38.549Z</LastModified>
    <ETag>"0cbc6611f5540bd0809a388dc95a615b"</ETag>
    <ChecksumAlgorithm>CRC64NVME</ChecksumAlgorithm>
    <ChecksumType>FULL_OBJECT</ChecksumType>
    <Size>4</Size>
    <StorageClass>STANDARD</StorageClass>
  </Contents>
</ListBucketResult>

Beispielanforderung (Parameter 'continuation-token')

Diese Anforderung listet die Objekte im Bucket 'apiary' auf, wobei ein Fortsetzungstoken angegeben ist.

GET /apiary?list-type=2&max-keys=1&continuation-token=1dPe45g5uuxjyASPegLq80sQsZKL5OB2by4Iz_7YGR5NjiOENBPZXqvKJN6_PgKGVzZYTlws7qqdWaMklzb8HX2iDxxl72ane3rUFQrvNMeIih49MZ4APUjrAuYI83KxSMmfKHGZyKallFkD5N6PwKg HTTP/1.1
Content-Type: text/plain
Host: s3.us.cloud-object-storage.appdomain.cloud
Authorization: Bearer {token}

Beispielanfrage (Parameter „continuation-token“)

GET /apiary?list-type=2&max-keys=1&continuation-token=1dPe45g5uuxjyASPegLq80sQsZKL5OB2by4Iz_7YGR5NjiOENBPZXqvKJN6_PgKGVzZYTlws7qqdWaMklzb8HX2iDxxl72ane3rUFQrvNMeIih49MZ4APUjrAuYI83KxSMmfKHGZyKallFkD5N6PwKg  HTTP/1.1
Authorization: 'AWS4-HMAC-SHA256 Credential={access-key}/{date}/{region}/s3/aws4_request,SignedHeaders=host;x-amz-date;,Signature={signature}'
x-amz-date: {timestamp}
Content-Type: text/plain
Host: s3.us.cloud-object-storage.appdomain.cloud

Beispielantwort (abgeschnittene Antwort, Parameter 'continuation-token')

HTTP/1.1 200 OK
Date: Wed, 24 Aug 2016 17:36:24 GMT
X-Clv-Request-Id: 9f39ff2e-55d1-461b-a6f1-2d0b75138861
Accept-Ranges: bytes
Server: Cleversafe/3.13.3.57
X-Clv-S3-Version: 2.5
x-amz-request-id: 9f39ff2e-55d1-461b-a6f1-2d0b75138861
Content-Type: application/xml
Content-Length: 604
<ListBucketResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
  <Name>apiary</Name>
  <Prefix/>
  <ContinuationToken>1dPe45g5uuxjyASPegLq80sQsZKL5OB2by4Iz_7YGR5NjiOENBPZXqvKJN6_PgKGVzZYTlws7qqdWaMklzb8HX2iDxxl72ane3rUFQrvNMeIih49MZ4APUjrAuYI83KxSMmfKHGZyKallFkD5N6PwKg</ContinuationToken>
  <NextContinuationToken>1a8j20CqowRrM4epIQ7fTBuyPZWZUeA8Epog16wYu9KhAPNoYkWQYhGURsIQbll1lP7c-OO-V5Vyzu6mogiakC4NSwlK4LyRDdHQgY-yPH4wMB76MfQR61VyxI4TJLxIWTPSZA0nmQQWcuV2mE4jiDA</NextContinuationToken>
  <KeyCount>1</KeyCount>
  <MaxKeys>1</MaxKeys>
  <Delimiter/>
  <IsTruncated>true</IsTruncated>
  <Contents>
    <Key>soldier-bee</Key>
    <LastModified>2016-08-25T17:49:06.006Z</LastModified>
    <ETag>"37d4c94839ee181a2224d6242176c4b5"</ETag>
    <ChecksumAlgorithm>CRC64NVME</ChecksumAlgorithm>
    <ChecksumType>FULL_OBJECT</ChecksumType>
    <Size>11</Size>
    <StorageClass>STANDARD</StorageClass>
  </Contents>
</ListBucketResult>

Objekte in einem bestimmten Bucket auflisten (veraltet)

Diese API ist aus Gründen der Kompatibilität mit einer früheren Version enthalten. Informationen zur empfohlenen Methode beim Abrufen von Objekten in einem Bucket finden Sie unter Version 2.

Eine an einen Bucket gerichtete „ GET “-Anfrage liefert eine Liste von Objekten zurück, die auf jeweils 1.000 Objekte begrenzt ist und in nicht-lexikografischer Reihenfolge zurückgegeben wird. Der in der Antwort zurückgegebene Wert „ StorageClass “ ist ein Standardwert, da Operationen der Speicherklasse in „ Object Storage “ nicht implementiert sind. Diese Operation verwendet keine operationsspezifischen Header oder Nutzdatenelemente.

Syntax

GET https://{endpoint}/{bucket-name} # path style
GET https://{bucket-name}.{endpoint} # virtual host style

Optionale Abfrageparameter für Listenobjektmethode

Optionale Abfrageparameter
Name Typ Beschreibung
prefix Zeichenfolge Beschränkt die Antwort auf Objektnamen, die mit „ prefix “ beginnen.
delimiter Zeichenfolge Gruppiert Objekte zwischen prefix und delimiter.
encoding-type Zeichenfolge Wenn Unicode-Zeichen, die von XML nicht unterstützt werden, in einem Objektnamen verwendet werden, kann für diesen Parameter url angegeben werden, um die Antwort ordnungsgemäß zu codieren.
max-keys Zeichenfolge Beschränkt die Anzahl der Objekte, die in der Antwort angezeigt werden sollen. Der Standardwert und der Maximalwert sind 1.000.
marker Zeichenfolge Gibt das Objekt an, bei dem die Auflistung beginnen soll, in der binären Reihenfolge von „ UTF-8 “.

Beispielanfrage

Diese Anforderung listet die Objekte im Bucket 'apiary' auf.

GET /apiary HTTP/1.1
Content-Type: text/plain
Host: s3.us.cloud-object-storage.appdomain.cloud
Authorization: Bearer {token}

Beispielanfrage

GET /apiary HTTP/1.1
Authorization: 'AWS4-HMAC-SHA256 Credential={access-key}/{date}/{region}/s3/aws4_request,SignedHeaders=host;x-amz-date;,Signature={signature}'
x-amz-date: {timestamp}
Content-Type: text/plain
Host: s3.us.cloud-object-storage.appdomain.cloud

Beispielantwort

HTTP/1.1 200 OK
Date: Wed, 24 Aug 2016 17:36:24 GMT
X-Clv-Request-Id: 9f39ff2e-55d1-461b-a6f1-2d0b75138861
Accept-Ranges: bytes
Server: Cleversafe/3.9.0.115
X-Clv-S3-Version: 2.5
x-amz-request-id: 9f39ff2e-55d1-461b-a6f1-2d0b75138861
Content-Type: application/xml
Content-Length: 909
<ListBucketResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
  <Name>apiary</Name>
  <Prefix/>
  <Marker/>
  <MaxKeys>1000</MaxKeys>
  <Delimiter/>
  <IsTruncated>false</IsTruncated>
  <Contents>
    <Key>drone-bee</Key>
    <LastModified>2016-08-25T17:38:38.549Z</LastModified>
    <ETag>"0cbc6611f5540bd0809a388dc95a615b"</ETag>
    <ChecksumAlgorithm>CRC64NVME</ChecksumAlgorithm>
    <ChecksumType>FULL_OBJECT</ChecksumType>
    <Size>4</Size>
    <Owner>
      <ID>{account-id}</ID>
      <DisplayName>{account-id}</DisplayName>
    </Owner>
    <StorageClass>STANDARD</StorageClass>
  </Contents>
  <Contents>
    <Key>soldier-bee</Key>
    <LastModified>2016-08-25T17:49:06.006Z</LastModified>
    <ETag>"37d4c94839ee181a2224d6242176c4b5"</ETag>
    <ChecksumAlgorithm>CRC64NVME</ChecksumAlgorithm>
    <ChecksumType>FULL_OBJECT</ChecksumType>
    <Size>11</Size>
    <Owner>
      <ID>{account-id}</ID>
      <DisplayName>{account-id}</DisplayName>
    </Owner>
    <StorageClass>STANDARD</StorageClass>
  </Contents>
  <Contents>
    <Key>worker-bee</Key>
    <LastModified>2016-08-25T17:46:53.288Z</LastModified>
    <ETag>"d34d8aada2996fc42e6948b926513907"</ETag>
    <ChecksumAlgorithm>CRC64NVME</ChecksumAlgorithm>
    <ChecksumType>FULL_OBJECT</ChecksumType>
    <Size>467</Size>
    <Owner>
      <ID>{account-id}</ID>
      <DisplayName>{account-id}</DisplayName>
    </Owner>
    <StorageClass>STANDARD</StorageClass>
  </Contents>
</ListBucketResult>

Bucket löschen

Ein „ DELETE “-Befehl, der für einen leeren Bucket ausgegeben wird, löscht den Bucket. Der Name des Buckets wird nach dem Löschen für 5 Minuten vom System reserviert. Nach 5 Minuten wird der Name zur Wiederverwendung freigegeben. Nur leere Buckets können gelöscht werden.

Wenn die Object Storage-Serviceinstanz gelöscht wird, werden alle Bucketnamen in dieser Instanz für 7 Tage vom System reserviert. Nach 7 Tagen werden die Namen zur Wiederverwendung freigegeben.

Syntax

DELETE https://{endpoint}/{bucket-name} # path style
DELETE https://{bucket-name}.{endpoint} # virtual host style

Optionale Header

Optionale Header
Name Typ Beschreibung
aspera-ak-max-tries Zeichenfolge Gibt an, wie oft versucht wird, die Löschoperation auszuführen. Der Standardwert lautet 2.

Beispielanfrage

DELETE /apiary HTTP/1.1
Host: s3.us.cloud-object-storage.appdomain.cloud
Authorization: Bearer {token}

Beispielanfrage

DELETE /apiary HTTP/1.1
Authorization: 'AWS4-HMAC-SHA256 Credential={access-key}/{date}/{region}/s3/aws4_request,SignedHeaders=host;x-amz-date;,Signature={signature}'
x-amz-date: {timestamp}
Content-Type: text/plain
Host: s3.us.cloud-object-storage.appdomain.cloud

Der Server antwortet mit 204 No Content.

Wenn für ein Bucket, das nicht leer ist, eine Löschung angefordert wird, dann antwortet der Server mit 409 Conflict.

Beispielantwort

<Error>
  <Code>BucketNotEmpty</Code>
  <Message>The bucket you tried to delete is not empty.</Message>
  <Resource>/apiary/</Resource>
  <RequestId>9d2bbc00-2827-4210-b40a-8107863f4386</RequestId>
  <httpStatusCode>409</httpStatusCode>
</Error>

Objektsperre für vorhandenes Bucket konfigurieren

Eine PUT-Anforderung, die an ein leeres Bucket mit dem Abfrageparameter ?object-lock adressiert wird, legt eine neue Objektsperrkonfiguration für ein Bucket fest.

Syntax

PUT https://{endpoint}/{bucket-name}?object-lock # path style
PUT https://{bucket-name}.{endpoint}?object-lock # virtual host style

Die Konfiguration der Objektsperre wird als XML im Hauptteil der Anforderung bereitgestellt. Neue Anforderungen überschreiben alle vorhandenen Replikationsregeln, die im Bucket vorhanden sind.

Eine Objektsperrkonfiguration muss eine Regel enthalten.

Optionale Header
Überschrift Typ Beschreibung
Content-MD5 Zeichenfolge Der nach dem „ Base64 “-Verfahren kodierte 128-Bit- MD5-Hash der Nutzlast, der als Integritätsprüfung dient, um sicherzustellen, dass die Nutzlast während der Übertragung nicht verändert wurde.
x-amz-checksum-crc32 Zeichenfolge Dieser Header ist die Base64 kodierte, 32-Bit CRC32 Prüfsumme des Objekts.
x-amz-checksum-crc32c Zeichenfolge Dieser Header ist die Base64 kodierte, 32-Bit CRC32C Prüfsumme des Objekts.
x-amz-checksum-crc64nvme Zeichenfolge Dieser Header ist die Base64 kodierte, 64-Bit CRC64NVME Prüfsumme des Objekts. Die Prüfsumme CRC64NVME ist immer eine vollständige Objektprüfsumme.
x-amz-checksum-sha1 Zeichenfolge Dieser Header ist der Base64 verschlüsselte 160-Bit-Digest des Objekts SHA1.
x-amz-checksum-sha256 Zeichenfolge Dieser Header ist der Base64 kodierte, 256-Bit SHA256 Digest des Objekts.
x-amz-sdk-checksum-algorithm Zeichenfolge Gibt den Algorithmus an, der bei Verwendung des SDK zur Erstellung der Prüfsumme für das Objekt verwendet wird.

Ein Content-MD5-Header oder ein checksum-Header (einschließlich x-amz-checksum-crc32, x-amz-checksum-crc32c, x-amz-checksum-crc64nvme, x-amz-checksum-sha1 oder x-amz-checksum-sha256) ist als Integritätsprüfung für die Nutzdaten erforderlich.

Der Hauptteil der Anforderung muss einen XML-Block mit dem folgenden Schema enthalten:

Körper des Antragsschemas
Element Typ Untergeordnete Elemente Vorfahre Einschränkung
ObjectLockConfiguration Container ObjectLockEnabled, Rule Keine Grenzwert 1.
ObjectLockEnabled Zeichenfolge Keine ObjectLockConfiguration Der einzige gültige Wert ist „ ENABLED “.
Rule Container DefaultRetention ObjectLockConfiguration Grenzwert 1
DefaultRetention Container Days, Mode, Years Rule Grenzwert 1.
Days Integer Keine DefaultRetention Die Anzahl Tage, die Sie für den Standardaufbewahrungszeitraum angeben wollen Sie kann nicht mit Years kombiniert werden.
Mode Zeichenfolge Keine DefaultRetention COMPLIANCE oder GOVERNANCE.
Years Integer Keine DefaultRetention Die Anzahl Jahre, die Sie für den Standardaufbewahrungszeitraum angeben wollen Sie kann nicht mit Days kombiniert werden.

Beispielanforderung

Diese Anforderung listet die Objekte im Bucket 'apiary' auf.

GET /apiary HTTP/1.1
Content-Type: text/plain
Host: s3.us.cloud-object-storage.appdomain.cloud
Authorization: Bearer {token}

Beispielantwort

HTTP/1.1 200 OK
Date: Wed, 24 Aug 2016 17:36:24 GMT
X-Clv-Request-Id: 9f39ff2e-55d1-461b-a6f1-2d0b75138861
Accept-Ranges: bytes
Server: Cleversafe/3.9.0.115
X-Clv-S3-Version: 2.5
x-amz-request-id: 9f39ff2e-55d1-461b-a6f1-2d0b75138861
Content-Type: application/xml
Content-Length: 909
<ObjectLockConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
  <ObjectLockEnabled>ENABLED</ObjectLockEnabled>
  <Rule>
      <DefaultRetention>
        <Days>30</Days>
        <Mode>COMPLIANCE</Mode>
      </DefaultRetention>
  </Rule>
</ObjectLockConfiguration>

Abgebrochene oder unvollständige mehrteilige Uploads für ein Bucket auflisten

Eine GET-Anforderung, die für ein Bucket mit den korrekten Parametern abgesetzt wird, ruft Informationen zu allen abgebrochenen oder unvollständigen mehrteiligen Uploads für ein Bucket ab.

Syntax

GET https://{endpoint}/{bucket-name}?uploads= # path style
GET https://{bucket-name}.{endpoint}?uploads= # virtual host style

Parameter

Parameter
Name Typ Beschreibung
prefix Zeichenfolge Beschränkt die Antwort auf Objektnamen, die mit „ {prefix} “ beginnen.
delimiter Zeichenfolge Gruppiert Objekte zwischen prefix und delimiter.
encoding-type Zeichenfolge Wenn Unicode-Zeichen, die von XML nicht unterstützt werden, in einem Objektnamen verwendet werden, kann für diesen Parameter url angegeben werden, um die Antwort ordnungsgemäß zu codieren.
max-uploads Integer Beschränkt die Anzahl der Objekte, die in der Antwort angezeigt werden sollen. Der Standardwert und der Maximalwert sind 1.000.
key-marker Zeichenfolge Gibt an, wo die Auflistung beginnen soll.
upload-id-marker Zeichenfolge Wird ignoriert, wenn „ key-marker “ nicht angegeben ist; andernfalls wird damit ein Punkt festgelegt, ab dem die Auflistung der Teile oberhalb von „ upload-id-marker “ beginnen soll.

Beispielanfrage

Im folgenden Beispiel werden alle aktuellen abgebrochenen und unvollständigen mehrteiligen Uploads abgerufen.

GET /apiary?uploads= HTTP/1.1
Authorization: Bearer {token}
Host: s3.us.cloud-object-storage.appdomain.cloud

Beispielanfrage

GET /apiary?uploads= HTTP/1.1
Authorization: 'AWS4-HMAC-SHA256 Credential={access-key}/{date}/{region}/s3/aws4_request,SignedHeaders=host;x-amz-date;,Signature={signature}'
x-amz-date: {timestamp}
Content-Type: text/plain
Host: s3.us.cloud-object-storage.appdomain.cloud

Beispielantwort (keine mehrteiligen Uploads in Bearbeitung)

HTTP/1.1 200 OK
Date: Wed, 5 Oct 2016 15:22:27 GMT
X-Clv-Request-Id: 9fa96daa-9f37-42ee-ab79-0bcda049c671
Accept-Ranges: bytes
Server: Cleversafe/3.9.0.129
X-Clv-S3-Version: 2.5
x-amz-request-id: 9fa96daa-9f37-42ee-ab79-0bcda049c671
Content-Type: application/xml
Content-Length: 374
<ListMultipartUploadsResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
  <Bucket>apiary</Bucket>
  <KeyMarker/>
  <UploadIdMarker/>
  <NextKeyMarker>multipart-object-123</NextKeyMarker>
  <NextUploadIdMarker>0000015a-df89-51d0-2790-dee1ac994053</NextUploadIdMarker>
  <MaxUploads>1000</MaxUploads>
  <IsTruncated>false</IsTruncated>
  <Upload>
    <Key>file</Key>
    <UploadId>0000015a-d92a-bc4a-c312-8c1c2a0e89db</UploadId>
    <Initiator>
      <ID>d4d11b981e6e489486a945d640d41c4d</ID>
      <DisplayName>d4d11b981e6e489486a945d640d41c4d</DisplayName>
    </Initiator>
    <Owner>
      <ID>d4d11b981e6e489486a945d640d41c4d</ID>
      <DisplayName>d4d11b981e6e489486a945d640d41c4d</DisplayName>
    </Owner>
    <StorageClass>STANDARD</StorageClass>
    <Initiated>2017-03-16T22:09:01.002Z</Initiated>
  </Upload>
  <Upload>
    <Key>multipart-object-123</Key>
    <UploadId>0000015a-df89-51d0-2790-dee1ac994053</UploadId>
    <Initiator>
      <ID>d4d11b981e6e489486a945d640d41c4d</ID>
      <DisplayName>d4d11b981e6e489486a945d640d41c4d</DisplayName>
    </Initiator>
    <Owner>
      <ID>d4d11b981e6e489486a945d640d41c4d</ID>
      <DisplayName>d4d11b981e6e489486a945d640d41c4d</DisplayName>
    </Owner>
    <StorageClass>STANDARD</StorageClass>
    <Initiated>2017-03-18T03:50:02.960Z</Initiated>
  </Upload>
</ListMultipartUploadsResult>

CORS-Konfiguration für Bucket auflisten

Eine GET-Anforderung, die für ein Bucket mit den korrekten Parametern abgesetzt wird, ruft Informationen zur CORS-Konfiguration (CORS = Cross-Origin Resource Sharing) für ein Bucket ab.

Syntax

GET https://{endpoint}/{bucket-name}?cors= # path style
GET https://{bucket-name}.{endpoint}?cors= # virtual host style

Beispielanfrage

Das folgende Beispiel zeigt eine „ CORS “-Konfiguration für den Bucket „apiary“.

GET /apiary?cors= HTTP/1.1
Authorization: Bearer {token}
Host: s3.us.cloud-object-storage.appdomain.cloud

Beispielanfrage

GET /apiary?cors= HTTP/1.1
Authorization: 'AWS4-HMAC-SHA256 Credential={access-key}/{date}/{region}/s3/aws4_request,SignedHeaders=host;x-amz-date;,Signature={signature}'
x-amz-date: {timestamp}
Content-Type: text/plain
Host: s3.us.cloud-object-storage.appdomain.cloud

Beispielantwort Nr. CORS-Konfigurationssatz

HTTP/1.1 200 OK
Date: Wed, 5 Oct 2016 15:20:30 GMT
X-Clv-Request-Id: 0b69bce1-8420-4f93-a04a-35d7542799e6
Accept-Ranges: bytes
Server: Cleversafe/3.9.0.129
X-Clv-S3-Version: 2.5
x-amz-request-id: 0b69bce1-8420-4f93-a04a-35d7542799e6
Content-Type: application/xml
Content-Length: 123
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
  <CORSRule>
    <AllowedMethod>GET</AllowedMethod>
    <AllowedMethod>PUT</AllowedMethod>
    <AllowedMethod>POST</AllowedMethod>
    <AllowedOrigin>http://www.ibm.com</AllowedOrigin>
  </CORSRule>
</CORSConfiguration>

CORS-Konfiguration für Bucket erstellen

Eine PUT-Anforderung, die für ein Bucket mit den korrekten Parametern abgesetzt wird, erstellt oder ersetzt eine CORS-Konfiguration (CORS = Cross-Origin Resource Sharing) für ein Bucket.

Syntax

PUT https://{endpoint}/{bucket-name}?cors= # path style
PUT https://{bucket-name}.{endpoint}?cors= # virtual host style

Nutzdatenelemente

Der Hauptteil der Anforderung muss einen XML-Block mit dem folgenden Schema enthalten:

Körper des Antragsschemas
Element Typ Untergeordnete Elemente Vorfahre Einschränkung
CORSConfiguration Container CORSRule
CORSRule Container AllowedOrigin, AllowedMethod Löschen
AllowedOrigin Zeichenfolge
CORSRule Gültige Ursprungszeichenfolge
AllowedMethod Zeichenfolge
CORSRule Gültige Methodenzeichenfolge
Optionale Header
Überschrift Typ Beschreibung
Content-MD5 Zeichenfolge Der nach dem „ base64 “-Verfahren kodierte 128-Bit- MD5-Hash der Nutzlast, der als Integritätsprüfung dient, um sicherzustellen, dass die Nutzlast während der Übertragung nicht verändert wurde.
x-amz-checksum-crc32 Zeichenfolge Dieser Header ist die Base64 kodierte, 32-Bit CRC32 Prüfsumme des Objekts.
x-amz-checksum-crc32c Zeichenfolge Dieser Header ist die Base64 kodierte, 32-Bit CRC32C Prüfsumme des Objekts.
x-amz-checksum-crc64nvme Zeichenfolge Dieser Header ist die Base64 kodierte, 64-Bit CRC64NVME Prüfsumme des Objekts. Die Prüfsumme CRC64NVME ist immer eine vollständige Objektprüfsumme.
x-amz-checksum-sha1 Zeichenfolge Dieser Header ist der Base64 verschlüsselte 160-Bit-Digest des Objekts SHA1.
x-amz-checksum-sha256 Zeichenfolge Dieser Header ist der Base64 kodierte, 256-Bit SHA256 Digest des Objekts.
x-amz-sdk-checksum-algorithm Zeichenfolge Gibt den Algorithmus an, der bei Verwendung des SDK zur Erstellung der Prüfsumme für das Objekt verwendet wird.

Ein Content-MD5-Header oder ein checksum-Header (einschließlich x-amz-checksum-crc32, x-amz-checksum-crc32c, x-amz-checksum-crc64nvme, x-amz-checksum-sha1 oder x-amz-checksum-sha256) ist als Integritätsprüfung für die Nutzdaten erforderlich. Der folgende Ausschnitt zeigt eine Möglichkeit, den Inhalt für die Kopfzeile Content-MD5 zu erhalten, die die binäre Darstellung eines base64-encoded MD5 Hashes ist.

echo -n (XML block) | openssl dgst -md5 -binary | openssl enc -base64

Beispielanfrage

Im folgenden Beispiel wird eine „ CORS “-Konfiguration hinzugefügt, die es Anfragen von www.ibm.com ermöglicht, Anfragen an den Bucket unter den Endpunkten GET, PUT und POST zu stellen.

PUT /apiary?cors= HTTP/1.1
Authorization: Bearer {token}
Content-Type: text/plain
Host: s3.us.cloud-object-storage.appdomain.cloud
Content-MD5: M625BaNwd/OytcM7O5gIaQ==
Content-Length: 237

Beispielanfrage

PUT /apiary?cors= HTTP/1.1
Authorization: 'AWS4-HMAC-SHA256 Credential={access-key}/{date}/{region}/s3/aws4_request,SignedHeaders=host;x-amz-date;,Signature={signature}'
x-amz-date: {timestamp}
Content-Type: text/plain
Host: s3.us.cloud-object-storage.appdomain.cloud
Content-MD5: M625BaNwd/OytcM7O5gIaQ==
Content-Length: 237
<CORSConfiguration>
  <CORSRule>
    <AllowedOrigin>http://www.ibm.com</AllowedOrigin>
    <AllowedMethod>GET</AllowedMethod>
    <AllowedMethod>PUT</AllowedMethod>
    <AllowedMethod>POST</AllowedMethod>
  </CORSRule>
</CORSConfiguration>

Beispielantwort

HTTP/1.1 200 OK
Date: Wed, 5 Oct 2016 15:39:38 GMT
X-Clv-Request-Id: 7afca6d8-e209-4519-8f2c-1af3f1540b42
Accept-Ranges: bytes
Server: Cleversafe/3.9.0.129
X-Clv-S3-Version: 2.5
x-amz-request-id: 7afca6d8-e209-4519-8f2c-1af3f1540b42
Content-Length: 0

CORS-Konfiguration für Bucket löschen

Eine DELETE-Anforderung, die für ein Bucket mit den korrekten Parametern abgesetzt wird, erstellt oder ersetzt eine CORS-Konfiguration (CORS = Cross-Origin Resource Sharing) für ein Bucket.

Syntax

DELETE https://{endpoint}/{bucket-name}?cors= # path style
DELETE https://{bucket-name}.{endpoint}?cors= # virtual host style

Beispielanfrage

Im folgenden Beispiel wird eine „ CORS “-Konfiguration für einen Bucket gelöscht.

DELETE /apiary?cors= HTTP/1.1
Authorization: Bearer {token}
Host: s3.us.cloud-object-storage.appdomain.cloud

Beispielanfrage

DELETE /apiary?cors= HTTP/1.1
Authorization: 'AWS4-HMAC-SHA256 Credential={access-key}/{date}/{region}/s3/aws4_request,SignedHeaders=host;x-amz-date;,Signature={signature}'
x-amz-date: {timestamp}
Content-Type: text/plain
Host: s3.us.cloud-object-storage.appdomain.cloud

Der Server antwortet mit 204 No Content.


Standortbedingung für ein Bucket auflisten

Eine GET-Anforderung, die für ein Bucket mit dem korrekten Parameter abgesetzt wird, ruft Informationen zum Standort für ein Bucket ab.

Syntax

GET https://{endpoint}/{bucket-name}?location # path style
GET https://{bucket-name}.{endpoint}?location # virtual host style

Beispielanfrage

Im folgenden Beispiel wird die Position des Buckets "apiary" abgerufen.

GET /apiary?location= HTTP/1.1
Authorization: Bearer {token}
Host: s3.us.cloud-object-storage.appdomain.cloud

Beispielanfrage

GET /apiary?location= HTTP/1.1
Authorization: 'AWS4-HMAC-SHA256 Credential={access-key}/{date}/{region}/s3/aws4_request,SignedHeaders=host;x-amz-date;,Signature={signature}'
x-amz-date: {timestamp}
Content-Type: text/plain
Host: s3.us.cloud-object-storage.appdomain.cloud

Beispielantwort

HTTP/1.1 200 OK
Date: Tue, 12 Jun 2018 21:10:57 GMT
X-Clv-Request-Id: 0e469546-3e43-4c6b-b814-5ad0db5b638f
Accept-Ranges: bytes
Server: Cleversafe/3.13.3.57
X-Clv-S3-Version: 2.5
x-amz-request-id: 0e469546-3e43-4c6b-b814-5ad0db5b638f
Content-Type: application/xml
Content-Length: 161
<LocationConstraint xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
  us-south-standard
</LocationConstraint>

Konfiguration für Bucketlebenszyklus erstellen

Bei einer PUT-Operation wird der Parameter für die Lebenszyklusabfrage verwendet, um Lebenszykluseinstellungen für das Bucket festzulegen. Ein Content-MD5-Header oder ein checksum-Header (einschließlich x-amz-checksum-crc32, x-amz-checksum-crc32c, x-amz-checksum-crc64nvme, x-amz-checksum-sha1 oder x-amz-checksum-sha256) ist als Integritätsprüfung für die Nutzdaten erforderlich.

Der folgende Ausschnitt zeigt eine Möglichkeit, den Inhalt für die Kopfzeile Content-MD5 zu erhalten, die die binäre Darstellung eines base64-encoded MD5 Hashes ist.

Syntax

PUT https://{endpoint}/{bucket-name}?lifecycle # path style
PUT https://{bucket-name}.{endpoint}?lifecycle # virtual host style

Nutzdatenelemente

Der Hauptteil der Anforderung muss einen XML-Block mit dem folgenden Schema enthalten:

Körper des Antragsschemas
Element Typ Untergeordnete Elemente Vorfahre Einschränkung
LifecycleConfiguration Container Rule Keine Grenzwert 1
Rule Container ID, Status, Filter, Transition LifecycleConfiguration Grenzwert 1
ID Zeichenfolge Keine Rule Muss aus (a-z,A-Z,0-9) und den folgenden Symbolen bestehen:! _ . * ' ( ) -
Filter Zeichenfolge Prefix Rule Muss ein Element Prefix enthalten.
Expiration Container Days, Date, ExpiredObjectDeleteMarker Rule Grenzwert 1
Prefix Zeichenfolge Keine Filter Bei Verwendung einer Übergangsregel (Archiv) muss auf <Prefix/> gesetzt werden. Diese Einschränkung gilt nicht für Ablaufregeln.
Transition Container Days, StorageClass Rule Begrenzung 1 Übergangsregel und insgesamt 1000 Regeln.
Days Nicht negative Ganzzahl Keine Transition Muss ein Wert größer-gleich 0 sein.
Date Datum Keine Transition Es muss im ISO 8601-Format vorliegen, und das Datum muss in der Zukunft liegen.
StorageClass Zeichenfolge Keine Transition Muss auf GLACIER oder ACCELERATED gesetzt sein.
ExpiredObjectDeleteMarker Boolescher Wert Keine Expiration Es muss entweder true oder false sein.
NoncurrentVersionExpiration Container NoncurrentDays NoncurrentVersionExpiration Grenzwert 1
NoncurrentDays Positive ganze Zahl Keine Transition Muss ein Wert größer als '0' sein.
AbortIncompleteMultipartUpload Container DaysAfterInitiation Rule Grenzwert 1
DaysAfterInitiation Nicht negative Ganzzahl Keine AbortIncompleteMultipartUpload Muss ein Wert größer als '0' sein.
Optionale Überschrift
Überschrift Typ Beschreibung
Content-MD5 Zeichenfolge Der nach dem „ base64 “-Verfahren kodierte 128-Bit- MD5-Hash der Nutzlast, der als Integritätsprüfung dient, um sicherzustellen, dass die Nutzlast während der Übertragung nicht verändert wurde.
x-amz-checksum-crc32 Zeichenfolge Dieser Header ist die Base64 kodierte, 32-Bit CRC32 Prüfsumme des Objekts.
x-amz-checksum-crc32c Zeichenfolge Dieser Header ist die Base64 kodierte, 32-Bit CRC32C Prüfsumme des Objekts.
x-amz-checksum-crc64nvme Zeichenfolge Dieser Header ist die Base64 kodierte, 64-Bit CRC64NVME Prüfsumme des Objekts. Die Prüfsumme CRC64NVME ist immer eine vollständige Objektprüfsumme.
x-amz-checksum-sha1 Zeichenfolge Dieser Header ist der Base64 verschlüsselte 160-Bit-Digest des Objekts SHA1.
x-amz-checksum-sha256 Zeichenfolge Dieser Header ist der Base64 kodierte, 256-Bit SHA256 Digest des Objekts.
x-amz-sdk-checksum-algorithm Zeichenfolge Gibt den Algorithmus an, der bei Verwendung des SDK zur Erstellung der Prüfsumme für das Objekt verwendet wird.

IBM Cloud® Object Storage IaaS (Nicht-IAM-)Konten können die Übergangsspeicherklasse nicht auf setzen ACCELERATED.

<LifecycleConfiguration>
    <Rule>
        <ID>{string}</ID>
        <Status>Enabled</Status>
        <Filter>
            <Prefix/>
        </Filter>
        <Transition>
            <Days>{integer}</Days>
            <StorageClass>GLACIER</StorageClass>
        </Transition>
    </Rule>
</LifecycleConfiguration>

Das folgende Snippet zeigt eine Möglichkeit, den Inhalt für diesen bestimmten Header zu erhalten.

echo -n (XML block) | openssl dgst -md5 -binary | openssl enc -base64

Beispielanfrage

PUT /apiary?lifecycle HTTP/1.1
Content-Type: text/plain
Host: s3.us.cloud-object-storage.appdomain.cloud
Authorization: {authorization-string}
Content-Type: text/plain
Content-MD5: M625BaNwd/OytcM7O5gIaQ==
Content-Length: 305

Beispielanfrage

PUT /apiary?lifecycle HTTP/1.1
Authorization: 'AWS4-HMAC-SHA256 Credential={access-key}/{date}/{region}/s3/aws4_request,SignedHeaders=host;x-amz-date;,Signature={signature}'
x-amz-date: {timestamp}
Content-Type: text/plain
Content-MD5: M625BaNwd/OytcM7O5gIaQ==
Content-Length: 305
Host: s3.us.cloud-object-storage.appdomain.cloud
<LifecycleConfiguration>
    <Rule>
        <ID>my-archive-policy</ID>
        <Filter>
            <Prefix/>
        </Filter>
        <Status>Enabled</Status>
        <Transition>
            <Days>20</Days>
            <StorageClass>GLACIER</StorageClass>
        </Transition>
    </Rule>
</LifecycleConfiguration>

Der Server antwortet mit 200 OK.


<LifecycleConfiguration>
    <Rule>
        <ID>{string}</ID>
        <Status>Enabled</Status>
        <Filter>
            <Prefix/>
        </Filter>
        <Expiration>
            <Days>{integer}</Days>
        </Expiration>
    </Rule>
</LifecycleConfiguration>

Das folgende Snippet zeigt eine Möglichkeit, den Inhalt für diesen bestimmten Header zu erhalten.

echo -n (XML block) | openssl dgst -md5 -binary | openssl enc -base64

Beispielanfrage

PUT /cit-test?lifecycle HTTP/1.1
Host: 192.168.35.22
Date: Fri, 28 Feb 2020 14:12:06 +0000
Authorization: AWS MOfXYiHQ9QTyD2ALoiOh:WrlFRE2KMmhutBf3CxIZoNLl/ko=
Content-MD5: To3JYtaVNR3+aGYtl1dlmw==
Content-Length: 321
<LifecycleConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
  <Rule>
    <ID>ID1</ID>
    <Status>Enabled</Status>
    <Filter>
      <Prefix/>
    </Filter>
    <Expiration>
      <Days>100</Days>
    </Expiration>
  </Rule>
</LifecycleConfiguration>

Beispielantwort Der Server antwortet mit „ 200 OK “.

We are completely uploaded and fine
HTTP/1.1 200 OK
Date: Fri, 28 Feb 2020 14:12:06 GMT
X-Clv-Request-Id: 587d909f-4939-41ef-8c16-80aea16a0587
Server: Cleversafe/3.14.9.53
X-Clv-S3-Version: 2.5
x-amz-request-id: 587d909f-4939-41ef-8c16-80aea16a0587
Content-Length: 0

Beispielanfrage

PUT /{bucket-name}?lifecycle HTTP/1.1
Authorization: Bearer {token}
Content-Type: text/plain
Host: s3.us.cloud-object-storage.appdomain.cloud
ibm-service-instance-id: {ibm-service-instance-id}
Content-Length: 123

Beispielanfrage

PUT /{bucket-name}?lifecycle HTTP/1.1
Authorization: 'AWS4-HMAC-SHA256 Credential={access-key}/{date}/{region}/s3/aws4_request,SignedHeaders=host;x-amz-date;,Signature={signature}'
x-amz-date: {timestamp}
Content-Type: text/plain
Host: s3.us.cloud-object-storage.appdomain.cloud
Content-Length: 123

Konfiguration für Bucketlebenszyklus abrufen

Bei einer GET-Operation wird der Abfrageparameter für den Lebenszyklus verwendet, um Lebenszykluseinstellungen für das Bucket abzurufen.

Syntax

GET https://{endpoint}/{bucket-name}?lifecycle # path style
GET https://{bucket-name}.{endpoint}?lifecycle # virtual host style

Beispielanfrage

GET /apiary?lifecycle HTTP/1.1
Content-Type: text/plain
Host: s3.us.cloud-object-storage.appdomain.cloud
Authorization: {authorization-string}

Beispielanfrage

GET /apiary?lifecycle HTTP/1.1
Authorization: 'AWS4-HMAC-SHA256 Credential={access-key}/{date}/{region}/s3/aws4_request,SignedHeaders=host;x-amz-date;,Signature={signature}'
x-amz-date: {timestamp}
Content-Type: text/plain
Host: s3.us.cloud-object-storage.appdomain.cloud

Beispielantwort

<LifecycleConfiguration>
    <Rule>
        <ID>my-archive-policy</ID>
        <Filter>
            <Prefix/>
        </Filter>
        <Status>Enabled</Status>
        <Transition>
            <Days>20</Days>
            <StorageClass>GLACIER</StorageClass>
        </Transition>
    </Rule>
</LifecycleConfiguration>

Beispielanfrage

GET /cit_dump-log?lifecycle HTTP/1.1
Host: 192.168.35.22
User-Agent: curl/7.64.1
Accept: */*
Date: Fri, 28 Feb 2020 14:00:43 +0000
Authorization: AWS MOfXYiHQ9QTyD2ALoiOh:iKm2QNetyW740kylP6ja2pze3DM=
Content-MD5: 1B2M2Y8AsgTpgAmY7PhCfg==

Beispielantwort

HTTP/1.1 200 OK
Date: Fri, 28 Feb 2020 14:00:43 GMT
X-Clv-Request-Id: ecbf9294-284d-4169-b2cd-5d52b2450808
Server: Cleversafe/3.14.9.53
X-Clv-S3-Version: 2.5
Accept-Ranges: bytes
x-amz-request-id: ecbf9294-284d-4169-b2cd-5d52b2450808
Content-Type: application/xml
Content-Length: 276
<LifecycleConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
   <Rule>
    <ID>ID1</ID>
    <Status>Enabled</Status>
    <Filter>
      <Prefix/>
    </Filter>
    <Expiration>
      <Days>270</Days>
    </Expiration>
   </Rule>
</LifecycleConfiguration>

Veraltete Daten mit Ablaufregeln löschen

Alle Ablaufaktionen für Objekte, die der Aufbewahrungsrichtlinie „Unveränderliche Daten ( Object Storage )“ eines Buckets unterliegen, werden zurückgestellt, bis die Aufbewahrungsrichtlinie nicht mehr gilt.

Weitere Informationen zur Verwendung der Lebenszykluskonfiguration zum Löschen von Objekten finden Sie in der Dokumentation.

Bei dieser Implementierung der PUT-Operation wird der Abfrageparameter lifecycle verwendet, um die Lebenszykluseinstellungen für das Bucket festzulegen. Diese Operation ermöglicht die Verwendung einer einzigen Lebenszyklusrichtliniendefinition für ein Bucket. Die Richtlinie ist als eine Reihe von Regeln definiert, die aus den folgenden Parametern besteht: ID, Status, Filter und Expiration.

Optionale Header
Überschrift Typ Beschreibung
Content-MD5 Zeichenfolge Der nach dem „ Base64 “-Verfahren kodierte 128-Bit- MD5-Hash der Nutzlast, der als Integritätsprüfung dient, um sicherzustellen, dass die Nutzlast während der Übertragung nicht verändert wurde.
x-amz-checksum-crc32 Zeichenfolge Dieser Header ist die Base64 kodierte, 32-Bit CRC32 Prüfsumme des Objekts.
x-amz-checksum-crc32c Zeichenfolge Dieser Header ist die Base64 kodierte, 32-Bit CRC32C Prüfsumme des Objekts.
x-amz-checksum-crc64nvme Zeichenfolge Dieser Header ist die Base64 kodierte, 64-Bit CRC64NVME Prüfsumme des Objekts. Die Prüfsumme CRC64NVME ist immer eine vollständige Objektprüfsumme.
x-amz-checksum-sha1 Zeichenfolge Dieser Header ist der Base64 verschlüsselte 160-Bit-Digest des Objekts SHA1.
x-amz-checksum-sha256 Zeichenfolge Dieser Header ist der Base64 kodierte, 256-Bit SHA256 Digest des Objekts.
x-amz-sdk-checksum-algorithm Zeichenfolge Gibt den Algorithmus an, der bei Verwendung des SDK zur Erstellung der Prüfsumme für das Objekt verwendet wird.

Ein Content-MD5-Header oder ein checksum-Header (einschließlich x-amz-checksum-crc32, x-amz-checksum-crc32c, x-amz-checksum-crc64nvme, x-amz-checksum-sha1 oder x-amz-checksum-sha256) ist als Integritätsprüfung für die Nutzdaten erforderlich.

Der folgende Ausschnitt zeigt eine Möglichkeit, den Inhalt für die Kopfzeile Content-MD5 zu erhalten, die die binäre Darstellung eines base64-encoded MD5 Hashes ist.

echo -n (XML block) | openssl dgst -md5 -binary | openssl enc -base64

Der Hauptteil der Anforderung muss einen XML-Block mit dem folgenden Schema enthalten:

Körper des Antragsschemas
Element Typ Untergeordnete Elemente Vorfahre Einschränkung
LifecycleConfiguration Container Rule Keine Grenzwert 1.
Rule Container ID, Status, Filter, Expiration LifecycleConfiguration Grenzwert 1000.
ID Zeichenfolge Keine Rule Muss aus (a-z,A-Z,0-9) und den folgenden Symbolen bestehen: ! _ . * ' ( ) -
Filter Zeichenfolge Prefix Rule Muss ein Element Prefix enthalten
Prefix Zeichenfolge Keine Filter Die Regel gilt für alle Objekte mit Schlüsseln, die mit diesem Präfix übereinstimmen.
Expiration Container Days oder Date Rule Grenzwert 1.
Days Nicht negative Ganzzahl Keine Expiration Muss ein Wert größer als '0' sein.
Date Datum Keine Expiration Muss im ISO 8601-Format angegeben werden.

Syntax

PUT https://{endpoint}/{bucket}?lifecycle # path style
PUT https://{bucket}.{endpoint}?lifecycle # virtual host style

Beispielanfrage

PUT /images?lifecycle HTTP/1.1
Host: s3.us.cloud-object-storage.appdomain.cloud
Date: Wed, 7 Feb 2018 17:50:00 GMT
Authorization: authorization string
Content-Type: text/plain
Content-MD5: M625BaNwd/OytcM7O5gIaQ==
Content-Length: 305
<LifecycleConfiguration>
	<Rule>
		<ID>id1</ID>
		<Filter />
		<Status>Enabled</Status>
		<Expiration>
			<Days>60</Days>
		</Expiration>
	</Rule>
</LifecycleConfiguration>

Lebenszykluskonfiguration für Bucket löschen

Eine DELETE-Anforderung, die für ein Bucket mit den korrekten Parametern abgesetzt wird, entfernt alle Lebenszykluskonfigurationen für ein Bucket.

Syntax

DELETE https://{endpoint}/{bucket-name}?lifecycle # path style
DELETE https://{bucket-name}.{endpoint}?lifecycle # virtual host style

Beispielanfrage

DELETE /apiary?lifecycle HTTP/1.1
Authorization: {authorization-string}
Host: s3.us.cloud-object-storage.appdomain.cloud

Beispielanfrage

DELETE /apiary?lifecycle HTTP/1.1
Authorization: 'AWS4-HMAC-SHA256 Credential={access-key}/{date}/{region}/s3/aws4_request,SignedHeaders=host;x-amz-date;,Signature={signature}'
x-amz-date: {timestamp}
Content-Type: text/plain
Host: s3.us.cloud-object-storage.appdomain.cloud

Der Server antwortet mit 204 No Content.

Beispielanfrage

DELETE /cit-test?lifecycle HTTP/1.1
Host: 192.168.35.22
User-Agent: curl/7.64.1
Accept: */*
Date: Fri, 28 Feb 2020 14:16:47 +0000
Authorization: AWS MOfXYiHQ9QTyD2ALoiOh:n25GU28DiBgkNVgET5hKmLmp938=
Content-MD5: 1B2M2Y8AsgTpgAmY7PhCfg==

Beispielantwort

HTTP/1.1 204 No Content
Date: Fri, 28 Feb 2020 14:16:47 GMT
X-Clv-Request-Id: 3e8bdf1e-b611-4b83-a404-e7d3e58e60b0
Server: Cleversafe/3.14.9.53
X-Clv-S3-Version: 2.5
x-amz-request-id: 3e8bdf1e-b611-4b83-a404-e7d3e58e60b0

Der Server antwortet mit 204 No Content.

Aufbewahrungsrichtlinie für vorhandenes Bucket hinzufügen

Immutable Object Storage steht nur in bestimmten Regionen zur Verfügung. Detaillierte Informationen hierzu finden Sie im Abschnitt Integrierte Services. Für diesen Dienst ist außerdem ein Standard-Tarif erforderlich. Detaillierte Informationen hierzu finden Sie im Abschnitt zur Preisstruktur.

Weitere Informationen zu Immutable Object Storage finden Sie in der Dokumentation.

Die unterstützten Mindest- und Höchstwerte für die Einstellungen der Aufbewahrungsfristen „ MinimumRetention “, „ DefaultRetention “ und „ MaximumRetention “ liegen zwischen mindestens 0 Tagen und höchstens 365.243 Tagen (1.000 Jahre).

Diese Operation verwendet keine zusätzlichen Abfrageparameter. Der Content-MD5-Header oder der checksum-Header (einschließlich x-amz-checksum-crc32, x-amz-checksum-crc32c, x-amz-checksum-crc64nvme, x-amz-checksum-sha1 oder x-amz-checksum-sha256) ist als Integritätsprüfung für die Nutzdaten erforderlich. Der folgende Ausschnitt zeigt eine Möglichkeit, den Inhalt für die Kopfzeile Content-MD5 zu erhalten, die die binäre Darstellung eines base64-encoded MD5 Hashes ist.

Richtlinien werden bis zum Ende eines Aufbewahrungszeitraums durchgesetzt und können erst nach Ablauf des Aufbewahrungszeitraums geändert werden. Während „ IBM Cloud® Object Storage “ für die meisten Vorgänge die API „ S3 “ verwendet, unterscheiden sich die APIs, die für die Konfiguration von Aufbewahrungsrichtlinien verwendet werden, von der API „ S3 “, auch wenn einige Begriffe identisch sein können. Lesen Sie diese Dokumentation sorgfältig durch, um zu verhindern, dass Benutzer in Ihrer Organisation Objekte erstellen, die selbst von „ IBM Cloud “-Administratoren nicht gelöscht werden können.

echo -n (XML block) | openssl dgst -md5 -binary | openssl enc -base64

Syntax

PUT https://{endpoint}/{bucket-name}?protection= # path style
PUT https://{bucket-name}.{endpoint}?protection= # virtual host style

Der Hauptteil der Anforderung muss einen XML-Block mit dem folgenden Schema enthalten:

Körper des Antragsschemas
Element Typ Untergeordnete Elemente Vorfahre Einschränkung
ProtectionConfiguration Container Status, MinimumRetention, MaximumRetention, DefaultRetention
Status Zeichenfolge
ProtectionConfiguration Gültige Statuszeichenfolge
MinimumRetention Container Days ProtectionConfiguration
MaximumRetention Container Days ProtectionConfiguration
DefaultRetention Container Days ProtectionConfiguration
Days Integer
MinimumRetention, MaximumRetention, DefaultRetention Gültige ganze Zahl für Aufbewahrungsdauer
Optionale Header
Überschrift Typ Beschreibung
Content-MD5 Zeichenfolge Der nach dem „ base64 “-Verfahren kodierte 128-Bit- MD5-Hash der Nutzlast, der als Integritätsprüfung dient, um sicherzustellen, dass die Nutzlast während der Übertragung nicht verändert wurde.
x-amz-checksum-crc32 Zeichenfolge Dieser Header ist die Base64 kodierte, 32-Bit CRC32 Prüfsumme des Objekts.
x-amz-checksum-crc32c Zeichenfolge Dieser Header ist die Base64 kodierte, 32-Bit CRC32C Prüfsumme des Objekts.
x-amz-checksum-crc64nvme Zeichenfolge Dieser Header ist die Base64 kodierte, 64-Bit CRC64NVME Prüfsumme des Objekts. Die Prüfsumme CRC64NVME ist immer eine vollständige Objektprüfsumme.
x-amz-checksum-sha1 Zeichenfolge Dieser Header ist der Base64 verschlüsselte 160-Bit-Digest des Objekts SHA1.
x-amz-checksum-sha256 Zeichenfolge Dieser Header ist der Base64 kodierte, 256-Bit SHA256 Digest des Objekts.
x-amz-sdk-checksum-algorithm Zeichenfolge Gibt den Algorithmus an, der bei Verwendung des SDK zur Erstellung der Prüfsumme für das Objekt verwendet wird.

Beispielanfrage

PUT /example-bucket?protection= HTTP/1.1
Authorization: {authorization-string}
x-amz-date: 20181011T190354Z
x-amz-content-sha256: 2938f51643d63c864fdbea618fe71b13579570a86f39da2837c922bae68d72df
Content-MD5: GQmpTNpruOyK6YrxHnpj7g==
Content-Type: text/plain
Host: 67.228.254.193
Content-Length: 299
<ProtectionConfiguration>
  <Status>Retention</Status>
  <MinimumRetention>
    <Days>100</Days>
  </MinimumRetention>
  <MaximumRetention>
    <Days>10000</Days>
  </MaximumRetention>
  <DefaultRetention>
    <Days>2555</Days>
  </DefaultRetention>
</ProtectionConfiguration>

Beispielantwort

HTTP/1.1 200 OK
Date: Wed, 5 Oct 2018 15:39:38 GMT
X-Clv-Request-Id: 7afca6d8-e209-4519-8f2c-1af3f1540b42
Accept-Ranges: bytes
Server: Cleversafe/3.14.1
X-Clv-S3-Version: 2.5
x-amz-request-id: 7afca6d8-e209-4519-8f2c-1af3f1540b42
Content-Length: 0

Einen Bucket für das Hosting statischer Websites einrichten

Ein „ PUT “, der mit den richtigen Parametern an einen Bucket gesendet wird, erstellt oder ersetzt eine statische Website-Konfiguration für diesen Bucket.

Syntax

PUT https://{endpoint}/{bucket-name}?website # path style
PUT https://{bucket-name}.{endpoint}?website # virtual host style

Nutzdatenelemente

Der Hauptteil der Anforderung muss einen XML-Block mit dem folgenden Schema enthalten:

Körper des Antragsschemas
Element Typ Untergeordnete Elemente Vorfahre Anmerkungen
WebsiteConfiguration Container ErrorDocument, IndexDocument, RedirectAllRequestsTo, RoutingRule
Erforderlich
ErrorDocument Container Key WebsiteConfiguration
Key Zeichenfolge
ErrorDocument
IndexDocument Container Suffix WebsiteConfiguration
Suffix Zeichenfolge
IndexDocument
RedirectAllRequestsTo Container HostName, Protocol WebsiteConfiguration Wenn angegeben, muss es sich um das einzige Element handeln, das angegeben wird.
HostName Zeichenfolge
RedirectAllRequestsTo
Protocol Zeichenfolge
RedirectAllRequestsTo
RoutingRules Container RoutingRule WebsiteConfiguration
RoutingRule Container Condition, Redirect RoutingRules
Condition Container HttpErrorCodeReturnedEquals, KeyPrefixEquals RoutingRule
HttpErrorCodeReturnedEquals Zeichenfolge
Condition
KeyPrefixEquals Zeichenfolge
Condition
Redirect Container HostName, HttpRedirectCode, Protocol, ReplaceKeyPrefixWith, ReplaceKeyWith RoutingRule
HostName Zeichenfolge
Redirect
HttpRedirectCode Zeichenfolge
Redirect
Protocol Zeichenfolge
Redirect
ReplaceKeyPrefixWith Zeichenfolge
Redirect
ReplaceKeyWith Zeichenfolge
Redirect

Beispielanforderung

Im folgenden Beispiel wird eine Websitekonfiguration hinzugefügt, die eine Basiswebsite bereitstellt, die in jedem Präfix nach einer index.html-Datei sucht. Beispiel: Eine Anforderung an /apiary/images/ stellt den Inhalt in /apiary/images/index.html bereit, ohne dass die eigentliche Datei angegeben werden muss.

PUT /apiary?website HTTP/1.1
Authorization: Bearer {token}
Content-Type: text/plain
Host: s3.us.cloud-object-storage.appdomain.cloud
Content-Length: 119
PUT /apiary?website HTTP/1.1
Authorization: 'AWS4-HMAC-SHA256 Credential={access-key}/{date}/{region}/s3/aws4_request,SignedHeaders=host;x-amz-date;,Signature={signature}'
x-amz-date: {timestamp}
Content-Type: text/plain
Host: s3.us.cloud-object-storage.appdomain.cloud
Content-Length: 119
<WebsiteConfiguration>
   <IndexDocument>
      <Suffix>index.html</Suffix>
   </IndexDocument>
</WebsiteConfiguration>

Beispielantwort

HTTP/1.1 200 OK
Date: Wed, 5 Oct 2020 15:39:38 GMT
X-Clv-Request-Id: 7afca6d8-e209-4519-8f2c-1af3f1540b42
Accept-Ranges: bytes
Content-Length: 0

Beliebige Websitekonfiguration für ein Bucket löschen

Eine DELETE-Anforderung, die an ein Bucket mit den richtigen Parametern ausgegeben wird, entfernt die Websitekonfiguration für ein Bucket.

Syntax

DELETE https://{endpoint}/{bucket-name}?website # path style
DELETE https://{bucket-name}.{endpoint}?website # virtual host style

Beispielanfrage

Im folgenden Beispiel wird eine Websitekonfiguration für ein Bucket gelöscht.

DELETE /apiary?website HTTP/1.1
Authorization: Bearer {token}
Host: s3.us.cloud-object-storage.appdomain.cloud

Beispielanfrage

DELETE /apiary?website HTTP/1.1
Authorization: 'AWS4-HMAC-SHA256 Credential={access-key}/{date}/{region}/s3/aws4_request,SignedHeaders=host;x-amz-date;,Signature={signature}'
x-amz-date: {timestamp}
Content-Type: text/plain
Host: s3.us.cloud-object-storage.appdomain.cloud

Der Server antwortet mit 204 No Content.


Öffentliche ACLs in einem Bucket blockieren

Eine PUT-Anforderung, die für ein Bucket mit den richtigen Parametern ausgegeben wird, verhindert das Hinzufügen von Zugriffssteuerungslisten für öffentlichen Zugriff für ein Bucket. Es kann festgelegt werden, dass neue ACL-Anforderungen fehlschlagen oder ignoriert werden. BlockPublicAcls wirkt sich nicht auf vorhandene ACLs aus, aber IgnorePublicAcls ignoriert vorhandene ACLs. Diese Operation wirkt sich nicht auf IAM-Richtlinien für öffentlichen Zugriff aus.

Syntax

PUT https://{endpoint}/{bucket-name}?publicAccessBlock # path style
PUT https://{bucket-name}.{endpoint}?publicAccessBlock # virtual host style

Nutzdatenelemente

Der Hauptteil der Anforderung muss einen XML-Block mit dem folgenden Schema enthalten:

Körper des Antragsschemas
Element Typ Untergeordnete Elemente Vorfahre Anmerkungen
PublicAccessBlockConfiguration Container BlockPublicAcls, IgnorePublicAcls
Erforderlich
BlockPublicAcls Boolescher Wert
PublicAccessBlockConfiguration
IgnorePublicAcls Boolescher Wert
PublicAccessBlockConfiguration

Beispielanforderung

PUT /apiary?publicAccessBlock HTTP/1.1
Authorization: Bearer {token}
Host: s3.us.cloud-object-storage.appdomain.cloud
Content-Length: 155
PUT /apiary?publicAccessBlock HTTP/1.1
Authorization: 'AWS4-HMAC-SHA256 Credential={access-key}/{date}/{region}/s3/aws4_request,SignedHeaders=host;x-amz-date;,Signature={signature}'
x-amz-date: {timestamp}
Host: s3.us.cloud-object-storage.appdomain.cloud
Content-Length: 155
<PublicAccessBlockConfiguration>
   <BlockPublicAcls>True</BlockPublicAcls>
   <IgnorePublicAcls>True</IgnorePublicAcls>
</PublicAccessBlockConfiguration>

Beispielantwort

HTTP/1.1 200 OK
Date: Mon, 02 Nov 2020 15:39:38 GMT
X-Clv-Request-Id: 7afca6d8-e209-4519-8f2c-1af3f1540b42
Accept-Ranges: bytes
Content-Length: 0

Öffentlichen ACL-Block für Bucket überprüfen

Ein an ein Bucket mit den richtigen Parametern ausgegebener GET gibt die ACL-Blockkonfiguration für ein Bucket zurück.

Syntax

GET https://{endpoint}/{bucket-name}?publicAccessBlock # path style
GET https://{bucket-name}.{endpoint}?publicAccessBlock # virtual host style

Beispielanfrage

Im folgenden Beispiel wird ein öffentlicher Zugriffsblock für ein Bucket gelesen.

GET /apiary?publicAccessBlock HTTP/1.1
Authorization: Bearer {token}
Host: s3.us.cloud-object-storage.appdomain.cloud

Beispielanfrage

GET /apiary?publicAccessBlock HTTP/1.1
Authorization: 'AWS4-HMAC-SHA256 Credential={access-key}/{date}/{region}/s3/aws4_request,SignedHeaders=host;x-amz-date;,Signature={signature}'
x-amz-date: {timestamp}
Content-Type: text/plain
Host: s3.us.cloud-object-storage.appdomain.cloud
HTTP/1.1 200 OK
Date: Mon, 02 Nov 2020 19:52:56 GMT
X-Clv-Request-Id: 7c9079b1-2833-4abc-ba10-466ef06725b2
Server: Cleversafe/3.15.2.31
X-Clv-S3-Version: 2.5
Accept-Ranges: bytes
Content-Type: application/xml
Content-Length: 248
<PublicAccessBlockConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
   <BlockPublicAcls>true</BlockPublicAcls>
   <IgnorePublicAcls>true</IgnorePublicAcls>
</PublicAccessBlockConfiguration>

Öffentlichen ACL-Block aus Bucket löschen

Ein DELETE, der mit den richtigen Parametern an ein Bucket ausgegeben wird, entfernt den Block der öffentlichen ACL aus einem Bucket.

Syntax

DELETE https://{endpoint}/{bucket-name}?publicAccessBlock # path style
DELETE https://{bucket-name}.{endpoint}?publicAccessBlock # virtual host style

Beispielanfrage

Im folgenden Beispiel wird ein ACL-Block für ein Bucket gelöscht.

DELETE /apiary?publicAccessBlock HTTP/1.1
Authorization: Bearer {token}
Host: s3.us.cloud-object-storage.appdomain.cloud

Beispielanfrage

DELETE /apiary?publicAccessBlock HTTP/1.1
Authorization: 'AWS4-HMAC-SHA256 Credential={access-key}/{date}/{region}/s3/aws4_request,SignedHeaders=host;x-amz-date;,Signature={signature}'
x-amz-date: {timestamp}
Content-Type: text/plain
Host: s3.us.cloud-object-storage.appdomain.cloud

Der Server antwortet mit 204 No Content.


Vorgänge der Sicherungsrichtlinie

Die API „ IBM Cloud® Object Storage “ für Sicherungsrichtlinien bietet Funktionen zum Erstellen, Verwalten und Interagieren mit Sicherungsrichtlinien. Die Sicherungsrichtlinien legen fest, wie die Daten in den Buckets in den Backup-Vaults gesichert werden.

Weitere Informationen zu Berechtigungen und Zugriff finden Sie unter Berechtigungen für Sicherungsrichtlinien.

Sicherungsrichtlinie erstellen

Eine POST Anfrage an den /buckets/{bucket}/backup_policies Endpunkt erstellt eine neue Sicherungsrichtlinie für einen Bucket.

Header
Überschrift Typ Erforderlich? Beschreibung
MD5 Zeichenfolge Nein MD5 hash des Inhalts. Falls angegeben, muss der Hash der Anfrage übereinstimmen.
Pfadparameter
Pfad Parameter Typ Erforderlich? Beschreibung
bucket_name Zeichenfolge Ja Der Name des Bereichs, auf den die Sicherungsrichtlinie angewendet wird.

Syntax

POST https://{endpoint}/buckets/{bucket}/backup_policies

Anforderungshauptteil

{
  "policy_name": "myBackupPolicy",
  "initial_retention": {
    "delete_after_days": 10
  },
  "backup_type": "continuous",
  "target_backup_vault_crn": "crn:v1:bluemix:public:cloud-object-storage:global:a1229395:1a0ec336-f391-4091-a6fb-5e084a4c56f4:backup-vault:backup-vault-name"
}

Beispielanforderung

POST /buckets/myBucket/backup_policies HTTP/1.1
Authorization: Bearer {token}
Content-Type: application/json
Host: config.cloud-object-storage.cloud.ibm.com
{
  "initial_retention": {
    "delete_after_days": 10
  },
  "policy_name": "myBackupPolicy",
  "target_backup_vault_crn": "crn:v1:bluemix:public:cloud-object-storage:global:2de9d5b5:12b951c9-d4e1-61a4-518c-3acc2034ba30:backup-vault:l4pi16n8rt--ufqb7.r-fw2ziy",
  "backup_type": "continuous"
}

Beispielantwort

{
  "policy_name": "myBackupPolicy",
  "initial_retention": {
    "delete_after_days": 10
  },
  "backup_type": "continuous",
  "policy_id": "44d3dd41-d616-4d25-911a-9ef7fbf28aef",
  "policy_status": "pending",
  "target_backup_vault_crn": "crn:v1:bluemix:public:cloud-object-storage:global:a1229395:1a0ec336-f391-4091-a6fb-5e084a4c56f4:backup-vault:backup-vault-name"
}

Liste der Sicherungsrichtlinien

Eine GET-Anfrage an den Endpunkt /buckets/{bucket}/backup_policies ruft alle Sicherungsrichtlinien für einen Bucket ab.

Pfadparameter
Pfad Parameter Typ Erforderlich? Beschreibung
bucket_name Zeichenfolge Ja Der Name des Bereichs, für den Sicherungsrichtlinien aufgelistet werden sollen.

Syntax

GET https://{endpoint}/buckets/{bucket}/backup_policies

Beispielanforderung

GET /buckets/myBucket/backup_policies HTTP/1.1
Authorization: Bearer {token}
Content-Type: application/json
Host: config.cloud-object-storage.cloud.ibm.com

Beispielantwort

[
  {
    "policy_name": "myBackupPolicy",
    "initial_retention": {
      "delete_after_days": 10
    },
    "backup_type": "continuous",
    "policy_id": "44d3dd41-d616-4d25-911a-9ef7fbf28aef",
    "policy_status": "active",
    "target_backup_vault_crn": "crn:v1:bluemix:public:cloud-object-storage:global:a1229395:8dfbcba4e6a740e3866020847e525436:backup-vault:backup-vault-name"
  }
]

Details zur Sicherungsrichtlinie abrufen

Eine GET Anfrage an den /buckets/{bucket}/backup_policies/{policy_id} Endpunkt ruft Details zu einer bestimmten Sicherungsrichtlinie ab.

Pfadparameter
Pfad Parameter Typ Erforderlich? Beschreibung
bucket_name Zeichenfolge Ja Der Name des Buckets.
policy_id Zeichenfolge Ja Die ID der Sicherungsrichtlinie.

Syntax

GET https://{endpoint}/buckets/{bucket}/backup_policies/{policy_id}

Beispielanforderung

GET /buckets/myBucket/backup_policies/44d3dd41-d616-4d25-911a-9ef7fbf28aef HTTP/1.1
Authorization: Bearer {token}
Content-Type: application/json
Host: config.cloud-object-storage.cloud.ibm.com

Beispielantwort

{
  "policy_name": "myBackupPolicy",
  "backup_type": "continuous",
  "policy_id": "44d3dd41-d616-4d25-911a-9ef7fbf28aef",
  "policy_status": "active",
  "target_backup_vault_crn": "crn:v1:bluemix:public:cloud-object-storage:global:a1229395:1a0ec336-f391-4091-a6fb-5e084a4c56f4:backup-vault:backup-vault-name",
  "initial_retention": {
    "delete_after_days": 10
  }
}

Löschen einer Sicherungsrichtlinie

Eine DELETE Anfrage an den /buckets/{bucket}/backup_policies/{policy_id} Endpunkt löscht eine bestimmte Sicherungsrichtlinie.

Pfadparameter
Pfad Parameter Typ Erforderlich? Beschreibung
bucket_name Zeichenfolge Ja Der Name des Buckets.
policy_id Zeichenfolge Ja Die ID der Sicherungsrichtlinie.

Syntax

DELETE https://{endpoint}/buckets/{bucket}/backup_policies/{policy_id}

Beispielanforderung

DELETE /buckets/myBucket/backup_policies/44d3dd41-d616-4d25-911a-9ef7fbf28aef HTTP/1.1
Authorization: Bearer {token}
Content-Type: application/json
Host: config.cloud-object-storage.cloud.ibm.com

Beispielantwort

HTTP/1.1 204 No Content

Weitere Informationen zu Sicherungsrichtlinien finden Sie unter Verwaltung von Backup-Tresoren.

Nächste Schritte

Weitere Informationen finden Sie unter Objektoperationen.