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.
| 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.
| Überschrift | Typ | Erforderlich? | Beschreibung |
|---|---|---|---|
ibm-service-instance-id |
Zeichenfolge | Ja | Listet Buckets auf, die in dieser Serviceinstanz erstellt wurden. |
| 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.
| Ü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:
| 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.
| Ü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
| 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
| 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
| 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.
| Ü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:
| 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
| 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:
| 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 |
| Ü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:
| 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. |
| Ü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.
| Ü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:
| 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:
| 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 |
| Ü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:
| 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:
| 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.
| Überschrift | Typ | Erforderlich? | Beschreibung |
|---|---|---|---|
MD5 |
Zeichenfolge | Nein | MD5 hash des Inhalts. Falls angegeben, muss der Hash der Anfrage übereinstimmen. |
| 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.
| 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.
| 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.
| 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.