オブジェクトの管理
Oracle Cloud Infrastructure Object Storageサービスでは、オブジェクトとは、オブジェクト・ストレージ・ネームスペース内のコンパートメント 内のバケットにアップロードするファイルまたは非構造化データです。オブジェクトには、あらゆるタイプのデータ(たとえば、マルチメディア・ファイル、データ・バックアップ、静的Webコンテンツ、ログ)を指定できます。最大10 TiBのオブジェクトを格納できます。オブジェクトは単一のエンティティとして処理されます。データの編集またはオブジェクトへの追加はできませんが、オブジェクト全体の置換は可能です。
このトピックでは、単一バケット内のオブジェクトを管理する方法について説明します。別のバケットへのオブジェクトのコピーの詳細は、オブジェクトのコピーを参照してください。
以前のバージョンのオブジェクトを保持するオブジェクト・ストレージの機能についても調べることができます。特に、オブジェクト・バージョニングでは、不注意や悪意による上書きまたは削除からオブジェクトを保護できます。詳細は、オブジェクト・バージョニングの使用を参照してください。
必須IAMポリシー
Oracle Cloud Infrastructureを使用するには、管理者によってポリシーでセキュリティ・アクセス権が付与されている必要があります。このアクセス権は、コンソール、あるいはSDK、CLIまたはその他のツールを使用したREST APIのいずれを使用している場合でも必要です。権限を持っていない、または認可されていないというメッセージが表示された場合は、持っているアクセス権のタイプと作業しているコンパートメントを管理者に確認してください。
ポリシーを初めて使用する場合は、ポリシーの開始と共通ポリシーを参照してください。
管理者の場合:
- ポリシーオブジェクト・ストレージの管理者がバケットとオブジェクトを管理するにより、指定したグループは、バケットおよびオブジェクトを使用したすべてのことを実行できます。オブジェクトは常にバケットと同じコンパートメントに存在します。
- オブジェクトに対してより制限的なポリシーを記述する必要がある場合は、
inspect objects
を使用すると、バケット内のすべてのオブジェクトをリストし、特定のオブジェクトに対してHEAD操作を実行できます。これに対して、read objects
では、オブジェクト自体をダウンロードできます。 - 個別の権限を付与するより限定的なポリシーを作成する場合:
- ライフサイクル・ポリシーを使用して、ユーザーのかわりに以前のオブジェクト・バージョンを削除するには、OBJECT_VERSION_DELETEが必要です。
- オブジェクトのストレージ層を変更するには、OBJECT_UPDATE_TIERが必要です。
オブジェクト・ストレージのユーザー権限の詳細は、オブジェクト・ストレージ、アーカイブ・ストレージおよびデータ転送の詳細を参照してください。
事前認証済リクエスト
事前認証済リクエストによって、ユーザーは独自の資格証明を持たずにバケットまたはオブジェクトにアクセスできるようになります。たとえば、ユーザーがAPIキーを所有せずにバケットにバックアップをアップロードするリクエストを作成できます。詳細は、事前認証済リクエストの使用を参照してください。
オブジェクト名
他のリソースとは異なり、オブジェクトにはOracle Cloud Identifier (OCID)はありません。かわりに、ユーザーはオブジェクトをアップロードする際にオブジェクト名を定義します。
オブジェクトに名前を付ける際は、次のガイドラインに従います:
- 1から1024文字で指定します。
- 有効な文字は、文字(大文字と小文字)、数字、およびライン・フィード、キャリッジ・リターン、NULL以外の文字です。
重要
バケット名およびオブジェクト名では、大文字と小文字が区別されます。オブジェクト・ストレージでは、q3-field-assets.xslxとQ3-Field-Assets.XSLXを別々のオブジェクトとして処理します。 - UTF-8エンコーディングが1024バイトを超えないUnicode文字のみを使用します。クライアントはURLエンコーディング文字を処理します。
- 機密情報の入力は避けてください。
- バケット内で名前を一意にします。オブジェクトに名前を付ける場合は、既存のオブジェクトを新規オブジェクトまたは名前変更したオブジェクトの内容で上書きしないかぎり、バケット内の既存のオブジェクトの名前を使用しないでください。
オブジェクト名には、名前の中に1つ以上のスラッシュ(/)文字を含めることができます。オブジェクト名にスラッシュを使用した階層の作成の詳細は、接頭辞および階層を使用したオブジェクト・ネーミングを参照してください。
接頭辞および階層を使用したオブジェクト・ネーミング
オブジェクト・ストレージ・ネームスペース内で、バケットおよびオブジェクトはフラットな構造に存在します。ただし、1つ以上のスラッシュ(/)を含む接頭辞文字列をオブジェクト名に追加することで、ディレクトリ構造をシミュレートできます。このようにすると、一度に1つのディレクトリをリストできます。これは、大規模なオブジェクトのセットをナビゲートする場合に役立ちます。
例:
marathon/finish_line.jpg
marathon/participants/p_21.jpg
オブジェクト名に接頭辞を追加した場合、次ができます:
- CLIまたはAPIを使用して、階層の指定レベルですべてのオブジェクトの一括ダウンロードおよび一括削除を実行します。
- コンソールを使用して、仮想フォルダ内のオブジェクトの階層ビューを表示します。前述の例では、
marathon
はfinish_line.jpg
という名前のオブジェクトを含むフォルダとして表示され、participants
はp_21.jpg
という名前のオブジェクトを含むmarathon
のサブフォルダになります。階層の任意のレベルにオブジェクトを一括アップロードしたり、バケットまたはフォルダ内のすべてのオブジェクトを一括削除したりできます。
階層の指定レベルでの一括操作は、上位レベルのオブジェクトに影響しません。
オブジェクトに名前を付ける際には、デリミタなしで接頭辞文字列を使用することもできます。デリミタを使用して、コンソールの検索操作や、CLまたはAPIの特定の一括操作をオブジェクト名の接頭辞部分で照合することはできません。たとえば、次のオブジェクト名の文字列gloves_27_
は、一括操作の実行時に照合目的のための接頭辞として機能します:
gloves_27_dark_green.jpg
gloves_27_light_blue.jpg
コンソール、CLIまたはAPIを使用して一括アップロードを実行する場合、アップロードするファイルの名前に接頭辞文字列を付加できます。
特定の管理インタフェースの階層および接頭辞文字列の詳細は、オブジェクト・ストレージ・バケットの個々のタスクを参照してください。
オプションのレスポンス・ヘッダーとメタデータ
オブジェクトをアップロードする場合、オプションのレスポンス・ヘッダーとユーザー定義メタデータを指定できます。レスポンス・ヘッダーは、オブジェクトがダウンロードされるときに、オブジェクト・ストレージからオブジェクト・ストレージ・クライアントに送信されるHTTPヘッダーです。ユーザー定義メタデータは、オブジェクトとともに格納される名前と値のペアです。コンソール、REST APIまたはCLIを使用してこれらのオプション属性を指定できます。
指定したレスポンス・ヘッダーまたはメタデータでは検証が実行されません。
次のレスポンス・ヘッダーの値を指定できます:
-
Content-Disposition
オブジェクトの表示専用情報を定義します。このヘッダーに値を指定しても、オブジェクト・ストレージの動作には影響しません。オブジェクトを読み取るプログラムでは、指定された値に基づいて実行する内容が決定されます。たとえば、次のヘッダーを使用して、ユーザーがブラウザでカスタム・ファイル名を持つオブジェクトをダウンロードできます:
attachment; filename="fname.ext"
詳細は、https://tools.ietf.org/html/rfc2616#section-19.5.1を参照してください。
-
Cache-Control
オブジェクトのキャッシュ動作を定義します。このヘッダーに値を指定しても、オブジェクト・ストレージの動作には影響しません。オブジェクトを読み取るプログラムでは、指定された値に基づいて実行する内容が決定されます。たとえば、次のヘッダーを使用して、キャッシュ制限が必要なオブジェクトを識別できます:
no-cache, no-store
詳細は、https://tools.ietf.org/html/rfc2616#section-14.9を参照してください。
ユーザー定義メタデータを名前と値のペアの形式で指定します。ユーザー定義メタデータ名は格納され、opc-meta-という必須の接頭辞を使用してオブジェクト・ストレージ・クライアントに返されます。
オブジェクト・ライフサイクル管理
オブジェクト・ライフサイクル管理では、コミットされていないマルチパート・アップロードの削除、別のストレージ層へのオブジェクトの移動、および特定のバケット内でサポートされているリソースをユーザーにかわって削除する処理を自動的に管理できます。これらの自動アクションは、ユーザーが定義および管理するルールに基づきます。この機能の詳細は、オブジェクト・ライフサイクル管理の使用を参照してください。
マルチパートのアップロードおよびダウンロード
Oracle Cloud Infrastructure Object Storageサービスは、オブジェクトのマルチパートのアップロードおよびダウンロードをサポートしています。
- APIおよびCLIのマルチパート・アップロード機能の詳細は、マルチパート・アップロードの使用を参照してください。
- マルチパート・ダウンロードのCLI情報については、マルチパート・ダウンロードを使用したオブジェクトのダウンロードを参照してください。
- マルチパート・ダウンロードに関連するAPIドキュメントについては、GetObject APIコールとそのrangeパラメータを参照してください。
リソースのモニタリング
メトリック、アラームおよび通知を使用して、Oracle Cloud Infrastructureリソースのヘルス、容量およびパフォーマンスをモニターできます。詳細は、モニタリングおよび通知を参照してください。
オブジェクトのモニタリングの詳細は、オブジェクト・ストレージ・メトリックを参照してください。
イベント・サービスを使用したオブジェクトの自動化の作成
イベント・タイプ、ルールおよびアクションを使用して、Oracle Cloud Infrastructureリソースの状態変更に基づいて自動化を作成できます。詳細は、イベントの概要を参照してください。
ストレージ・ゲートウェイを使用したオブジェクトのアップロードおよびダウンロード
ストレージ・ゲートウェイは、Oracle Cloud Infrastructure Object Storageに対してオブジェクトをアップロードおよびダウンロードできるもう1つの方法です。
ストレージ・ゲートウェイは、Oracle Cloud Infrastructureコンピュート・インスタンスにインストールされるか、オンプレミス・データ・センターで1つ以上のホストにLinux Dockerインスタンスとしてインストールされます。アプリケーションは、ストレージ・ゲートウェイで作成したファイル・システムを介してOracle Cloud Infrastructure Object Storageからオブジェクトを格納および取得します。ストレージ・ゲートウェイは、NFSv4クライアントをサポートするホストにマウント可能なNFSマウント・ポイントを公開します。ストレージ・ゲートウェイのマウント・ポイントは、オブジェクトをアップロードおよびダウンロードするためにオブジェクト・ストレージ・バケットにマップされます。
詳細は、ストレージ・ゲートウェイの概要を参照してください。