4.6. Swift オブジェクト操作


開発者は、Ceph Object Gateway 経由で Swift アプリケーションのプログラミングインターフェイス (API) を使用してオブジェクト操作を行うことができます。オブジェクトをリスト表示、作成、更新、および削除することができます。オブジェクトのメタデータを追加または更新することもできます。

4.6.1. 前提条件

  • 稼働中の Red Hat Ceph Storage クラスターがある。
  • RESTful クライアント。

4.6.2. Swift オブジェクト操作

オブジェクトは、データおよびメタデータを保存するコンテナーです。コンテナーには多くのオブジェクトがありますが、オブジェクト名は一意である必要があります。この API により、クライアントはオブジェクトの作成、アクセス制御およびメタデータの設定、オブジェクトのデータおよびメタデータの取得、およびオブジェクトの削除を行うことができます。この API は特定のユーザーのアカウントの情報に関連するリクエストを行うため、この API のすべてのリクエストを認証する必要があります。コンテナーまたはオブジェクトのアクセス制御が意図的に公開されていない限り、つまり匿名の要求を許可している場合を除きます。

4.6.3. Swift がオブジェクトを取得

オブジェクトを取得するには、API バージョン、アカウント、コンテナー、およびオブジェクト名を使用して GET リクエストを行います。コンテナー内のオブジェクトを取得するには、コンテナーの読み取り権限が必要です。

構文

GET /API_VERSION/ACCOUNT/TENANT:CONTAINER/OBJECT HTTP/1.1
Host: FULLY_QUALIFIED_DOMAIN_NAME
X-Auth-Token: AUTH_TOKEN

リクエストヘッダー

range
説明
オブジェクトの内容のサブセットを取得するには、バイト範囲を指定します。
日付
必須
いいえ
If-Modified-Since
説明
ソースオブジェクトの last_modified 属性の日時以降に変更された場合のみコピーします。
日付
必須
いいえ
If-Unmodified-Since
説明
ソースオブジェクトの last_modified 属性の日時以降に変更した場合のみコピーします。
日付
必須
いいえ
Copy-If-Match
説明
リクエストの ETag がソースオブジェクトの ETag と一致する場合にのみコピーします。
ETag
必須
いいえ
Copy-If-None-Match
説明
リクエストの ETag がソースオブジェクトの ETag と一致しない場合にのみコピーします。
ETag
必須
いいえ

レスポンスヘッダー

Content-Range
説明
オブジェクトコンテンツのサブセットの範囲。range ヘッダーフィールドがリクエストで指定されている場合にのみ返されます。

4.6.4. Swift でオブジェクトの作成または更新

新規オブジェクトを作成するには、API バージョン、アカウント、コンテナー名、および新規オブジェクトの名前を使用して PUT 要求を行います。オブジェクトを作成または更新するには、コンテナーに書き込みパーミッションが必要です。オブジェクト名は、コンテナー内で一意である必要があります。PUT リクエストはべき等ではないため、一意の名前を使用しないと、リクエストによりオブジェクトが更新されます。ただし、オブジェクト名に疑似階層構文を使用して、別の疑似階層ディレクトリーにある場合は、同じ名前の別のオブジェクトと区別することができます。リクエストには、アクセス制御ヘッダーおよびメタデータヘッダーを含めることができます。

構文

PUT /API_VERSION/ACCOUNT/TENANT:CONTAINER HTTP/1.1
Host: FULLY_QUALIFIED_DOMAIN_NAME
X-Auth-Token: AUTH_TOKEN

リクエストヘッダー

ETag
説明
オブジェクトの内容の MD5 ハッシュ。推奨。
String
有効な値
該当なし
必須
いいえ
Content-Type
説明
オブジェクトの内容の MD5 ハッシュ。
String
有効な値
該当なし
必須
いいえ
Transfer-Encoding
説明
オブジェクトが大規模な集約オブジェクトの一部であるかどうかを示します。
String
有効な値
chunked
必須
いいえ

4.6.5. Swift でオブジェクトの削除

オブジェクトを削除するには、API バージョン、アカウント、コンテナー、およびオブジェクト名を使用して DELETE リクエストを行います。コンテナー内のオブジェクトを削除するには、コンテナーに対する書き込み権限が必要です。オブジェクトが正常に削除されると、オブジェクト名を再利用できます。

構文

DELETE /API_VERSION/ACCOUNT/TENANT:CONTAINER/OBJECT HTTP/1.1
Host: FULLY_QUALIFIED_DOMAIN_NAME
X-Auth-Token: AUTH_TOKEN

4.6.6. Swift でオブジェクトのコピー

オブジェクトのコピーを使用すると、オブジェクトをダウンロードしたり、別のコンテナーにアップロードしたりしなくてもよいように、オブジェクトのサーバー側のコピーを作成できます。あるオブジェクトのコンテンツを別のオブジェクトにコピーするには、API バージョン、アカウント、およびコンテナー名で PUT 要求または COPY 要求を行います。

PUT 要求の場合は、要求で宛先コンテナーおよびオブジェクト名、および要求ヘッダーのソースコンテナーおよびオブジェクトを使用します。

Copy リクエストには、要求でソースコンテナーおよびオブジェクト、および要求ヘッダーの宛先コンテナーおよびオブジェクトを使用します。オブジェクトをコピーするには、コンテナーに書き込みパーミッションが必要です。宛先オブジェクト名は、コンテナー内で一意である必要があります。リクエストはべき等ではないため、一意の名前を使用しないと、リクエストにより宛先オブジェクトが更新されます。宛先オブジェクトが別の疑似階層ディレクトリーにある場合は、オブジェクト名に疑似階層構文を使用して、同じ名前のソースオブジェクトと区別できます。リクエストには、アクセス制御ヘッダーおよびメタデータヘッダーを含めることができます。

構文

PUT /API_VERSION/ACCOUNT/TENANT:CONTAINER HTTP/1.1
X-Copy-From: TENANT:SOURCE_CONTAINER/SOURCE_OBJECT
Host: FULLY_QUALIFIED_DOMAIN_NAME
X-Auth-Token: AUTH_TOKEN

または、次のようになります。

構文

COPY /API_VERSION/ACCOUNT/TENANT:SOURCE_CONTAINER/SOURCE_OBJECT HTTP/1.1
Destination: TENANT:DEST_CONTAINER/DEST_OBJECT

リクエストヘッダー

X-Copy-From
説明
ソースコンテナー/オブジェクトパスを定義するために PUT リクエストで使用されます。
String
必須
はい (PUT を使用している場合)
宛先
説明
宛先コンテナー/オブジェクトパスを定義するために COPY 要求で使用されます。
String
必須
はい (COPY を使用している場合)
If-Modified-Since
説明
ソースオブジェクトの last_modified 属性の日時以降に変更された場合のみコピーします。
日付
必須
いいえ
If-Unmodified-Since
説明
ソースオブジェクトの last_modified 属性の日時以降に変更した場合のみコピーします。
日付
必須
いいえ
Copy-If-Match
説明
リクエストの ETag がソースオブジェクトの ETag と一致する場合にのみコピーします。
ETag
必須
いいえ
Copy-If-None-Match
説明
リクエストの ETag がソースオブジェクトの ETag と一致しない場合にのみコピーします。
ETag
必須
いいえ

4.6.7. Swift でオブジェクトメタデータの取得

オブジェクトのメタデータを取得するには、API バージョン、アカウント、コンテナー、およびオブジェクト名を使用して HEAD リクエストを行います。コンテナー内のオブジェクトからメタデータを取得するには、コンテナーの読み取り権限が必要です。このリクエストは、オブジェクト自体の要求と同じヘッダー情報を返しますが、オブジェクトのデータを返しません。

構文

HEAD /API_VERSION/ACCOUNT/TENANT:CONTAINER/OBJECT HTTP/1.1
Host: FULLY_QUALIFIED_DOMAIN_NAME
X-Auth-Token: AUTH_TOKEN

4.6.8. Swift によるオブジェクトメタデータの追加または更新

オブジェクトにメタデータを追加するには、API バージョン、アカウント、コンテナー、およびオブジェクト名で POST リクエストを行います。メタデータを追加または更新するには、親コンテナーに対する書き込み権限が必要です。

構文

POST /API_VERSION/ACCOUNT/TENANT:CONTAINER/OBJECT HTTP/1.1
Host: FULLY_QUALIFIED_DOMAIN_NAME
X-Auth-Token: AUTH_TOKEN

リクエストヘッダー

X-Object-Meta-KEY
説明
任意の文字列の値を取得するユーザー定義のメタデータキー。
String
必須
いいえ
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.