Object Storageの概要

Prev Next

概要

NAVERクラウドプラットフォーム Object Storageは、ストレージの管理と使用に必要な S3 APIを提供しています。

バージョン: Amazon S3 v2006-03-01

呼び出しドメイン(Endpoint)

HTTPと HTTPSプロトコルのいずれもサポートしていますが、データ保護のため、HTTPSの使用をお勧めします。

リージョン別呼び出しドメイン

リージョン リージョン名 呼び出しドメイン
韓国 kr-standard https://kr.object.ncloudstorage.com
米国西部(New) us-standard https://us.object.ncloudstorage.com
シンガポール(New) sg-standard https://sg.object.ncloudstorage.com
日本(New) jp-standard https://jp.object.ncpstorage.com
ドイツ(New) de-standard https://de.object.ncloudstorage.com

提供リージョンは継続して拡大する予定です。

認証キー(Credential)

ポータルのマイページ > アカウント管理 > 認証キー管理で作成した API認証キーを使用します。

以下、S3 APIを利用して NAVERクラウドプラットフォーム Object Storageにアクセスする際に使用できるすべてのオペレーションを説明します。
サンプルコードを含むオペレーション使用方法の詳細は、バケットのオペレーション、オブジェクトのオペレーションページをご参照ください。

アカウント関連のオペレーション

アカウントレベルでは、そのアカウントに属するバケットリストを照会するオペレーションのみサポートしています。アカウントのバケット数は1,000個に制限されます。

オペレーション 説明
GET Account(List Buckets) アカウントに属するバケットリストを照会

バケットのオペレーション

バケットを作成、削除、照会、制御するオペレーションを説明します。

_バケット内のオブジェクトリストの照会 GET Bucket (List Objects) Version 2はサポートしていません。

オペレーション 説明
PUT Bucket バケットを作成
アカウントのバケット数は1,000個に制限される
GET Bucket(List Objects) バケットに含まれているオブジェクトを照会
一度に最大1,000個のオブジェクトを並べる
HEAD Bucket バケットヘッダを照会
DELETE Bucket 空のバケットを削除
PUT Bucket ACL バケットに適用するアクセス制御リスト(ACL)を作成
GET Bucket ACL バケットに適用されたアクセス制御リスト(ACL)を照会
PUT Bucket CORS バケットに適用する CORS設定を作成
GET Bucket CORS バケットに適用された CORS設定を照会
DELETE Bucket CORS バケットに適用された CORS設定を削除
List Multipart Uploads 完了していないか、キャンセルされたマルチパートアップロードを照会

オブジェクトのオペレーション

オブジェクトを作成、削除、照会、制御するオペレーションを説明します。

オペレーション 説明
PUT Object バケットにオブジェクトを追加(アップロード)
PUT Object (Copy) オブジェクトのコピーを作成
GET Object オブジェクトを照会(ダウンロード)
HEAD Object オブジェクトヘッダを照会
DELETE Object バケットからオブジェクトを削除
DELETE Multiple Objects バケットからマルチパートオブジェクトを削除
PUT Object ACL オブジェクトに適用するアクセス制御リスト(ACL)を作成
GET Object ACL オブジェクトに適用されたアクセス制御リスト(ACL)を照会
OPTIONS Object CORS設定を確認して、特定のリクエストを転送できるか照会
Initiate Multipart Upload アップロードするパートの集合に指定するアップロード IDを作成
Upload Part アップロード ID関連のオブジェクトのパートをアップロード
Complete Multipart Upload アップロード ID関連のパートに分離されたオブジェクトを結合
Abort Multipart Upload アップロードを中断し、アップロード ID関連のパートを削除

共通ヘッダ

共通リクエストヘッダ

次の表で、NAVERクラウドプラットフォーム Object Storageでサポートしている共通リクエストヘッダを説明します。

NAVERクラウドプラットフォーム Object Storageは、次の表に明記されていない共通ヘッダに対し、リクエストが転送された場合でも無視します。

ただし、リクエストの一部は、この文書に定義された通り、他のヘッダをサポートすることがあります。
認証ヘッダ作成の詳細は、「認証の管理」ページで確認できます。

ヘッダ 説明
Authorization 必須(AWS Signature Version 4)
Host 必須
x-amz-date 必須、Date形式に指定
x-amz-content-sha256 必須
ただし、オブジェクトのアップロード時またはボディにリクエスト情報が含まれている場合に限る
Content-Length 必須
ただし、オブジェクトのアップロード時に限る
チャンクエンコード(chunked encoding)をサポート
Content-MD5 転送中のリクエストボディの128ビット MD5ハッシュ値
Expect 100-continueの場合、リクエストボディの転送前にヘッダが承認されるまで待機

共通レスポンスヘッダ

次の表で、共通レスポンスヘッダを説明します。

ヘッダ 説明
Content-Length リクエストボディの長さ(単位: Byte)
Connection 接続されたかどうか
Date リクエストメッセージのタイムスタンプ
ETag リクエストメッセージの MD5ハッシュ値
x-amz-request-id リクエスト時に作成された固有 ID

レスポンスステータスコード

エラーコード 説明 HTTPステータスコード
AccessDenied アクセスが拒否される 403 Forbidden
BadDigest 指定した Content-MD5が受信した内容と一致しない 400 Bad Request
BucketAlreadyExists リクエストしたバケット名は使用不可
バットのネームスペースはシステムを利用するすべてのユーザーが共有する
別の名前を選択し、再試行
409 Conflict
BucketNotEmpty 削除しようとするバケットが空ではない 409 Conflict
CredentialsNotSupported このリクエストは Credentialsをサポートしない 400 Bad Request
EntityTooSmall アップロードしようとするオブジェクトの容量が最小容量より小さい 400 Bad Request
EntityTooLarge アップロードしようとするオブジェクトの容量が最大容量を超過 400 Bad Request
IncompleteBody Content-Length HTTPヘッダに値を指定していない 400 Bad Request
IncorrectNumberOfFilesInPostRequest POSTリクエストではファイルを1個だけアップロードできる 400 Bad Request
InlineDataTooLarge インラインデータの容量が最大容量を超過 400 Bad Request
InternalError 内部エラー発生
再試行が必要
500 Internal Server Error
InvalidAccessKeyId 入力した AWSアクセスキー IDがデータベースに存在しない 403 Forbidden
InvalidArgument 有効ではないパラメータ 400 Bad Request
InvalidArgument シークレットキーの MD5ハッシュ値は有効ではない
MD5ハッシュは Base64エンコードが必要
400 Bad Request
InvalidArgument MD5ハッシュ値が入力値と一致しない 400 Bad Request
InvalidBucketName 指定したバケットは有効ではない 400 Bad Request
InvalidBucketState このリクエストはバケットの現在の状態では有効ではない 409 Conflict
InvalidDigest 指定した Content-MD5は有効ではない 400 Bad Request
InvalidEncryptionAlgorithmError 指定した Encryptionリクエストは有効ではない
サポートされる値は AES256
400 Bad Request
InvalidLocationConstraint 地域制限条件は有効ではない 400 Bad Request
InvalidObjectState オブジェクトの現在の状態では、このオペレーションは有効ではない 403 Forbidden
InvalidPart 指定されたパートのうち、1つ以上見つからない
パートがアップロードされていないか、指定されたエンティティタグがパートのエンティティタグと一致しない可能性がある
400 Bad Request
InvalidPartOrder パートリストが昇順でソートされていない
パート番号順にソートされていることが必要
400 Bad Request
InvalidRange リクエストされた範囲を満たせられない 416 Requested Range Not Satisfiable
InvalidRequest AWS4-HMAC-SHA256アルゴリズムの使用が必要 400 Bad Request
InvalidSecurity 入力したセキュリティ Credentialsは有効ではない 403 Forbidden
InvalidURI 指定された URIの構文を分析できない 400 Bad Request
KeyTooLong キーが長すぎる 400 Bad Request
MalformedACLError 入力した XML形式が正しくないか、公開されたスキーマの有効性が検査されていない 400 Bad Request
MalformedPOSTRequest POSTリクエストボディの multipart/form-dataの属性が正しくない 400 Bad Request
MalformedXML 設定が正しくない XML(XSD規定に準拠しない XML)を転送した時に発生するエラー
エラーメッセージ: "The XML you provided was not well-formed or did not validate against our published schema."
400 Bad Request
MaxMessageLengthExceeded リクエストが長すぎる 400 Bad Request
MaxPostPreDataLengthExceededError アップロードファイルの先頭の POSTリクエストフィールドが長すぎる 400 Bad Request
MetadataTooLarge メタデータのヘッダのサイズが最大サイズを超過 400 Bad Request
MethodNotAllowed 指定したメソッドはこのリソースに使用不可 405 Method Not Allowed
MissingContentLength Content-Length HTTPヘッダの提供が必要 411 Length Required
MissingRequestBodyError 空の XML文書を転送した時に発生するエラー
エラーメッセージ: "Request body is empty."
400 Bad Request
NoSuchBucket 指定したバケットは存在しない 404 Not Found
NoSuchKey 指定したキーは存在しない 404 Not Found
NoSuchUpload 指定したマルチパートアップロードは存在しない
アップロード IDが有効でないか、マルチパートアップロードが中断または完了した可能性がある
404 Not Found
NotImplemented 入力したヘッダは実装されていない機能を意味 501 Not Implemented
OperationAborted 条件付き演算がこのリソースと衝突したため、再試行が必要 409 Conflict
PreconditionFailed 指定した前提条件のうち、1つ以上実行されていない 412 Precondition Failed
Redirect 一時的に新しい場所にリダイレクトする 307 Moved Temporarily
RequestIsNotMultiPartContent バケット POSTリクエストには必ず enclosure-type multipart/form-data属性を指定 400 Bad Request
RequestTimeout ソケット接続が制限時間以内にサーバに届いていない 400 Bad Request
RequestTimeTooSkewed リクエスト時間とサーバ時間との差が大きすぎる 403 Forbidden
SignatureDoesNotMatch 入力された署名が測定された署名と一致しない
AWSのシークレットキーと署名方式の確認が必要
403 Forbidden
ServiceUnavailable リクエスト頻度過多 503 Service Unavailable
SlowDown リクエスト頻度過多 503 Slow Down
TemporaryRedirect DNSをアップデートする間、バケットにリダイレクト 307 Moved Temporarily
TooManyBuckets バケット作成可能な最大数を超過 400 Bad Request
UnexpectedContent このリクエストはコンテンツをサポートしない 400 Bad Request
UnresolvableGrantByEmailAddress 入力されたメールアドレスと一致するアカウントはデータベースに存在しない 400 Bad Request
UserKeyMustBeSpecified バケット POSTリクエストは、指定されたフィールド名を含めなければならない
フィールド名が指定されている場合、フィールドの順番の確認が必要
400 Bad Request

認証

NAVERクラウドプラットフォーム Object Storage APIの認証は Authorizationヘッダを通じて行われます。認証方法の詳細は、Object Storage APIご利用ガイドで確認できます。

アクセス制御リスト(ACL)

NAVERクラウドプラットフォーム Object Storageサービスを利用中の会員を対象に、バケットとオブジェクトへのアクセス権限を付与できます。

NAVERクラウドプラットフォーム Object Storageご利用の申し込みを完了した会員には、Object Storageで使用可能な IDが発行されます。
この IDは、バケットとオブジェクトのアクセス権限を設定する際に用いられます。

さらに、認証なしでアクセスできるように public-read、public-write権限も設定できます。

次の表で、権限の種類と、その権限が付与された場合に実行可能なオペレーションを説明します。

権限 バケットに付与された場合 オブジェクトに付与された場合
READ バケットに属するオブジェクトリストの照会が可能 オブジェクトデータとメタデータの読み取りが可能
WRITE 新規オブジェクトの作成や既存のオブジェクトの上書き、または削除が可能 N/A
READ_ACP バケットの ACL照会が可能 オブジェクトの ACL照会が可能
WRITE_ACP バケットの ACL設定が可能 オブジェクトの ACL設定が可能
FULL_CONTROL READ、WRITE、READ_ACP、WRITE_ACP権限に許されているすべてのオペレーションが実行可能 READ、READ_ACP、WRITE_ACP権限に許されているすべてのオペレーションが実行可能

次の表で、NAVERクラウドプラットフォーム Object Storageでサポートしている基本 ACLを説明します。この表に明示されていない値はサポートしていません。

基本 ACL 適用対象 説明
private バケット、オブジェクト 所有者に FULL_CONTROL権限を付与(デフォルト)
public-read バケット、オブジェクト 所有者に FULL_CONTROL権限を、すべてのユーザーに READ権限を付与
public-read-write バケット、オブジェクト 所有者に FULL_CONTROL権限を、すべてのユーザーに READと WRITE権限を付与
authenticated-read バケット、オブジェクト 所有者に FULL_CONTROL権限を、認証済みのユーザーに READ権限を付与

public-readを含む READ権限がバケットに適用された場合、オブジェクトは照会のみ行えます。オブジェクト自体にはアクセスできません。