はじめに

このサイトは、「IIJオブジェクトストレージサービス(以下、「本サービス」)」で提供しているストレージのAPIリファレンスです。

ストレージの構成要素

本サービスのストレージは、サービス(Service), バケット(Bucket), オブジェクト(Object) という要素で構成されています。
これらの要素はサービスがバケットを包含し、バケットがオブジェクトを包含する階層的な関係を持っています。
バケットは作成時にどのリージョン(弊社設備)に配置するかユーザが選択します。

サービス(Service)

サービスは1つの契約とその契約に紐付くすべてのバケットの集合を表したものです。

Note

契約とは、本サービスの契約を意味しています。
IIJサービスオンラインで表示される1つのサービスコードが1つの契約に対応します。

バケット(Bucket)

バケットはオブジェクトのコンテナ(入れ物)です。オブジェクトは1つのバケットに属します。
バケット名は本サービス全体を通じて一意なものである必要があります。
また、 仮想ホスト形式 でバケット名を指定する場合は、DNS命名規則に従う必要があります。

Note

バケットには以下の制約があります。

1つのバケットに格納可能なオブジェクトの数に制限はありませんが、バケットは1契約につき最大で100個まで作成できます。

バケット名については以下の規定に従わなければなりません。
  • 小文字(a-z)、数字(0-9)、ピリオド(.)、アンダライン(_)、ダッシュ(-)で構成される。
  • 数字または文字で開始する。
  • 文字列の長さが3~63の範囲内である。
  • IPアドレス表記でない(e.g., 192.168.5.4)。
DNS命名規則に従うために、以下の規定に従うことを推奨します。
  • アンダラインを使用しない。
  • バケット名の終端にダッシュを使用しない。
  • ピリオドを連続して使用しない。
  • ピリオドの前後にダッシュを使用しない(e.g., “my-.bucket.com” 、”my.-bucket”)。
  • 大文字を使用しない。

バケット作成時にリージョンを決定する必要があります。詳細はリージョンを確認してください。

オブジェクト(Object)

オブジェクトはデータ、オブジェクトキー、メタデータから構成されます。

オブジェクトキーは、URIで表現されたオブジェクトの識別子です。このオブジェクトキーによってバケット内のオブジェクトが一意に識別されます。
オブジェクトに付随する情報はメタデータとして管理されます。メタデータは名前と値のペアのセットです。オブジェクトをアップロードする際に任意の値を設定できます。

Note

オブジェクトキーは一連のUnicode文字で、UTF-8にエンコードした時のバイト長の最大サイズは950 Bytesです。メタデータに任意の値を設定するには、オブジェクトをアップロードする際にHTTPリクエストヘッダに指定します。

Note

オブジェクトの最大サイズは5TBです。また、5GB以上のデータをアップロードするには、マルチパートアップロード機能をご利用ください。

リージョン

リージョンとはIIJオブジェクトストレージサービスを提供する弊社設備の名称です。

西日本リージョンと東日本リージョンの2つのリージョンを提供します。

バケットの作成やオブジェクトのアップロード、ダウンロードの際にリージョンを考慮する必要があります。

  • バケットは作成時にリクエストを送ったリージョンに作成されます

  • オブジェクトはバケットの存在するリージョンに格納されます
    • 複数のリージョンにバケットを作成し、同じオブジェクトをアップロードすることで東西にデータを保管することができます
    • オブジェクトの格納先と、リクエスト先のリージョン(エンドポイント)が一致しない場合、404 Not Foundを返します
  • 東西別々のリージョンに存在するバケット間でオブジェクトのコピーが可能です(PUT Object (Copy))

エンドポイント

エンドポイントとは本サービスを利用する際のアクセス先です。URLを組み立てる際のドメインの部分になります。

エンドポイント(ドメイン)を一覧で示します。

エンドポイントとリージョンの識別子の関係
リージョン エンドポイント(REST) エンドポイント(website) リージョンの識別子(リージョン制約) リージョンの別名(※)
西日本 storage-dag.iijgio.com もしくは ap1.dag.iijgio.com website-dag.iijgio.com もしくは website-ap1.dag.iijgio.com ap1 JP-WEST1
東日本 ap2.dag.iijgio.com website-ap2.dag.iijgio.com ap2 JP-EAST1

※「リージョンの別名」はマルチリージョン対応以前の識別子です。互換性を維持しており、(PUT Bucket) で継続して利用可能です。

機能のご紹介

本サービスで提供する機能の概要を説明します。

ストレージ

HTTP/HTTPSを用いてデータの格納・取得操作を行えるシンプルなストレージです。

管理コンソールなどを利用することで、どこからでも気軽に使用できるオンラインストレージサービスとして使うことができます。また、RESTインタフェースのアプリケーションプログラミングインタフェース(API)を使用することで利用シーンに合わせた柔軟な操作を実現することもできます。

Note

ストレージのAPIはAmazon S3ライクなREST APIです。

アクセスコントロール

アクセスコントロールリスト(ACL)及びバケットポリシーを使用してバケットとオブジェクトへのアクセス権限を管理できます。

詳細はアクセス制御をご覧ください。

マルチパートアップロード

オブジェクトの最大サイズは5TBですが、PUT Object APIでアップロードできるサイズは5GBまでという制限があります。マルチパートアップロードを使用することで、5GB以上のデータをアップロードできます。

マルチパートアップロードを使用すると、単一のオブジェクトをパート(断片的なデータ)のセットとしてアップロードできます。各パートは任意の順番でアップロードできます。

マルチパートアップロードの利点として、
  • 5GB以上のデータをアップロード可能
    • 最大5TBのオブジェクトをアップロードできます。
  • 一時的なネットワークの問題に強い
    • アップロードの最中にネットワークの問題でエラーになってしまった場合に、影響範囲をアップロード中のパートのみに局所化できます。
  • 並列でアップロードし、効率を上げられる
    • 複数のパートを並列にアップロードすることで、単一のアップロード時よりもスループットが向上する場合があります。

Note

マルチパートアップロードには以下の制限があります。
  • 1つのマルチパートアップロードでアップロードできるパートの数は最大10,000までです。
  • (終端となるパートを除き)各パートのサイズは5MB以上でなければなりません。

マルチパートアップロードの流れ

マルチパートアップロードは以下の手順で使用します。

  1. マルチパートアップロードの開始(初期化): Initiate Multipart Upload
    • まず、マルチパートアップロードの開始を意味するマルチパートアップロードリソースを作成します。
    • リソース作成の際に払い出されるアップロードIDを用いて以下の操作を行います。
  2. 各パートのアップロード: Upload Part
    • Upload PartAPIを用いて各パートをアップロードします。
    • この時、各パートの上限サイズは5GB以下、最後のパート以外は5MB以上の制限があります。
  3. マルチパートアップロードの完了: Complete Multipart Upload
    • 全パートのアップロードが終わったら、Complete Multipart Uploadをおこないマルチパートアップロードを完了します。完了後は1つのオブジェクトが生成され、マルチパートアップロードに紐付くすべてのパートが破棄されます。

Note

マルチパートアップロードを中断するにはAbort Multipart Uploadを使用します。

静的Webサイトホスティング

静的Webサイトを本サービスでホスティングできます。

静的Webサイトとは、HTMLファイルやCSS、画像ファイル、JavaScriptなどの静的なコンテンツで構成されるWebサイトです。

静的Webサイトホスティングを利用するには、バケットに対してWebサイトホスティングの設定(PUT Bucket website)を行います。その後そのバケットに、読み取り可能な権限でコンテンツをアップロードすると、以下のWebサイトエンドポイントからアクセスできます。

<bucket-name>.website-dag.iijgio.com

カスタムドメインの使用

Webサイトホスティングの設定を行ったバケットは、以下の手順で独自のドメインを使用してコンテンツを配信できます。

  1. ドメインを作成する

    ドメイン名登録サービスを利用してドメインを登録します。既にドメインが登録済みの場合はこのステップを省略できます。

  2. バケットの作成及び設定
    ドメイン名と同名のバケットを作成します。
    例えば、ドメイン(www.example.com)であれば www.example.com という名前のバケットを作成します。
    バケットの作成後、REST APIの PUT Bucket website を使用してWebサイトホスティング用の設定を行います。
  3. コンテンツのアップロード
    ホスティングするWebサイトの静的なコンテンツをバケットにアップロードします。
    この時、2. のWebサイトホスティング用の設定で指定した インデックスドキュメントエラードキュメント が含まれるようにコンテンツを配置してください。
  4. コンテンツのアクセス権限の設定
    Webサイトを公開するためにACLまたはバケットポリシーで匿名ユーザに対してREAD権限を付与します。
    例: ドメインが www.example.com でバケットポリシーで権限を付与する場合は以下のように設定します。
    {
      "Version": "2008-10-17",
      "Statement": [{
        "Sid": "AddPerm",
            "Effect": "Allow",
          "Principal": {
                "IIJGIO": "*"
             },
          "Action": ["dag:GetObject"],
          "Resource": ["grn:iijgio:dag:::www.example.com/*"]
        }
      ]
    }
    
  5. DNSの設定
    CNAMEレコードとして、ドメインとWebサイトホスティングエンドポイントを紐付けます。
    例えば、 www.example.com の場合は、CNAMEタイプで www.example.com に対して <bucket-name>.website-dag.iijgio.com を登録します。
  6. 確認
    DNSに設定したドメインにアクセスしWebサイトが正しく動作することを確認します。
    例えば、ドメインが www.example.com の場合は以下のURLです。
    http://www.example.com/
    

クロスサイトリクエスト

クロスサイトリクエスト(Cross-Origin Resource Sharing: CORS) は、要求を出すリソースが存在するドメインとは異なるドメインに対してHTTPリクエストを行うことを指します。

本サービスのクロスサイトリクエスト機能を使うことで、静的なコンテンツを本サービスで管理し外部のWebサイトからJavaScriptを使用してアクセスできます。クロスサイトリクエスト機能はPUT Bucket corsAPIでバケットに対して設定できます。

詳細はPUT Bucket corsをご覧ください。

ストレージのご利用

利用シーンに合せて以下のサービス及びツールをご利用ください。

管理コンソール

本サービスのストレージ及び静的Webサイトホスティングを管理するためのWebインタフェースです。

以下のURLからアクセスキー及びシークレットアクセスキーでログインしてご利用ください。

dagtools

本サービスのコマンドラインツールです。

詳細はdagtoolsをご覧ください。

Java SDK

本サービスのAPIを利用するためのJava用クライアントライブラリです。

詳細はJava SDKをご覧ください。

s3fuse

s3fuseを使用することでFUSE(Filesystem in Userspace)を用いてファイルシステムとして利用できます。

詳細はs3fuseをご覧ください。

ページ先頭へ