HEAD Object

オブジェクトのメタデータを取得します(オブジェクトそのものは取得しません)。
オブジェクトに対しREAD権限を持たなければ、メタデータを取得することはできません。
匿名ユーザにREAD権限が付与されていれば、Authorizationヘッダーを利用せずにオブジェクトのメタデータを取得することができます。
HEAD操作はGET操作と同じオプションを持ちます。レスポンスボディがないのを除いて、GETのレスポンスと同じです。

 

リクエスト情報

シンタックス
HEAD /{bucket name}/{object key} HTTP/1.1
Host: s3api.iot.iij.jp
Date: {date}
Authorization: {authorization string}

 

リクエストパラメータ

この操作ではリクエストパラメータは使用しません。

リクエストヘッダー

この操作では基本リクエストヘッダーに加え、以下のヘッダーを使用します。

表. HEAD Object リクエストヘッダー一覧

HTTPヘッダー 説明 必須
Range

ダウンロードするオブジェクトの範囲を指定します。

bytes=開始位置-終了位置 の形式で記述します。開始位置を省略した場合、開始位置は 0 となり、終了位置を省略した場合はファイルの終了位置(オブジェクトのサイズ)となります。また、先頭の bytes= を省略することもできます。

  • 型:String
  • デフォルト値:なし

値の指定パターンは、以下の3通りです。

  • start-end
    startバイトからendバイトまでのデータを返します。
  • start-
    startバイト以降のデータを返します。
  • -end
    ファイルの後端から end バイトまでのデータを返します。

範囲をカンマ区切りで複数指定された場合、最初に記載されている範囲のみを解釈します。 (e.x., bytes=0-999, bytes=1000-, -1999)

×
If-Modified-Since

指定された時間以降にオブジェクトが更新されていればオブジェクトを返し、その他の場合には304 Not Modifiedを返します。

  • 型:String
  • デフォルト値:なし
  • 制約:なし
×
If-Unmodified-Since

指定された時間以降にオブジェクトが更新されていなければ、オブジェクトを返し、その他の場合には412 Precondition Failedを返します。

  • 型:String
  • デフォルト値:なし
×
If-Match

指定された値がオブジェクトのETagと 一致する 場合にオブジェクトを返します。一致しない場合には412 Precondition Failedを返します。

  • 型:String
  • デフォルト値:なし
×
If-None-Match

指定された値がオブジェクトのETagと 一致しない 場合にオブジェクトを返します。一致する場合には304 Not Modifiedを返します。

  • 型:String
  • デフォルト値:なし
×

 

サーバサイド暗号化 で暗号化されたオブジェクトを取得する場合、以下のヘッダを指定します。

表. HEAD Object リクエストヘッダー(サーバサイド暗号化)一覧

名前 説明 必須
x-iijgio-server-side-encryption-customer-algorithm オブジェクトの復号に用いるアルゴリズムを指定します。値は”AES256”である必要があります。
x-iijgio-server-side-encryption-customer-key オブジェクトの復号に用いる暗号化キーを指定します。Base64でエンコードした値をセットします。暗号化キーの長さはBase64エンコード前で256ビットである必要があります。 暗号化キーは対象オブジェクトの暗号化後に速やかに破棄されます。
x-iijgio-server-side-encryption-customer-key-MD5 暗号化キーをMD5(128bit)でダイジェストし、Base64エンコードした値をセットします。暗号化キーが正しく送られて来たかサービス側で検証するために利用します。
リクエストエレメント

この操作ではリクエストエレメントは使用しません。

 

レスポンス情報

レスポンスヘッダー

この操作では基本レスポンスヘッダーに加え、以下のヘッダーを返します。

表. GET Object レスポンスヘッダー一覧

HTTPヘッダー 説明
x-iijgio-meta-*

オブジェクトのPUT操作をした際にメタデータを用意していた場合、x-iijgio-meta-を接頭辞として、レスポンスヘッダーで返されます。

例、family -> x-iijgio-meta-family
メタデータは逐語的に返されます(解釈は行いません)。

  • 型:String
x-iijgio-missing-meta

x-iijgio-metaヘッダーで返らないメタデータのエントリー数がセットされます。
SOAP APIのようにREST APIよりもフレキシブルにメタデータをサポートしているAPIを使用してメタデータを作成した場合に起こる可能性があります。

  • 型:String

取得対象のオブジェクトが サーバサイド暗号化 で暗号化されている場合、追加で以下のヘッダを返します。

表. GET Object レスポンスヘッダー(サーバサイド暗号化)一覧

HTTPヘッダー 説明
x-iijgio-server-side-encryption-customer-algorithm

暗号化に利用したアルゴリズムを返します。

  • 型:String
x-iijgio-server-side-encryption-customer-key-MD5

暗号化に利用した暗号化キーのMD5値を返します。

  • 型:String
レスポンスエレメント

この操作はレスポンスエレメントを返しません。

エラー情報

この操作では以下のエラーを返します。

表. HEAD Object エラーコード一覧

コード ステータス 内容
InvalidAccessKeyId 403 Forbidden 指定のアクセスキーIDを持つユーザが存在しません。
SignatureDoesNotMatch 403 Forbidden 指定されたリクエストのシグネチャが一致しません。
AccessDenied 403 Forbidden オブジェクトに対するREAD権限がありません。
NoSuchKey 404 Not Found 指定Keyのオブジェクトが存在しません。
InvalidRange 416 Request Range Not Satisfiable 無効な範囲が指定されています。
InvalidArgument 400 Bad Request

以下のいずれかが原因です。

  • サーバサイド暗号化用のヘッダの指定に誤りがあります
  • ヘッダで指定された暗号化キーが、暗号化時の暗号化キーと一致しません
  • httpsで通信をしていません
InvalidEncryptionAlgorithmError 400 Bad Request x-iijgio-server-side-encryption-customer-algorithに誤った値が指定されています。

 

サンプル

サンプル1:オブジェクトのメタデータを取得する
リクエスト
HEAD /bucket/my-image.jpg HTTP/1.1
Host: s3api.iot.iij.jp
Date: Wed, 28 Oct 2009 22:32:00 GMT
Authorization: IIJGIO 02236Q3V0RonhpaBX5sCYVf1bNRuU=
レスポンス
HTTP/1.1 200 OK
x-iijgio-id-2: ef8yU9AS1ed4OpIszj7UDNEHGran
x-iijgio-request-id: 318BC8BC143432E5
x-iijgio-version-id: 3HL4kqtJlcpXroDTDmjVBH40Nrjfkd
Date: Wed, 28 Oct 2009 22:32:00 GMT
Last-Modified: Sun, 1 Jan 2006 12:00:00 GMT
ETag: "fba9dede5f27731c9771645a39863328"
Content-Length: 434234
Content-Type: text/plain
Server: s3api.iot.iij.jp