オブジェクトキー名の作成
オブジェクトキー (またはキー名) によって、Amazon S3 バケット内のオブジェクトは一意に識別されます。オブジェクトメタデータは、名前と値のペアのセットです。オブジェクトメタデータの詳細については、オブジェクトメタデータの使用 を参照してください。
オブジェクトを作成するときに、キー名を指定します。これにより、バケット内のオブジェクトは一意に識別されます。例えば、Amazon S3 コンソール
注記
値「soap」を持つオブジェクトキー名は、仮想ホスト形式のリクエストについてサポートされていません。「soap」が使用されるオブジェクトキー名値の場合、パス形式の URL を代わりに使用する必要があります。
Amazon S3 のデータモデルはフラットな構造をしています。バケットを作成し、バケットにオブジェクトを保存します。サブバケットやサブフォルダの階層はありません。ただし、Amazon S3 コンソールで使用されているようなキー名のプレフィックスや区切り記号を使用して論理的な階層を暗示できます。Amazon S3 コンソールでは、フォルダの概念をサポートしています。Amazon S3 コンソールからメタデータを編集する方法の詳細については、Amazon S3 コンソールでのオブジェクトメタデータの編集 を参照してください。
バケット (admin-created
) に、次のようなオブジェクトキーを持つ 4 つのオブジェクトがあるとします。
Development/Projects.xls
Finance/statement1.pdf
Private/taxdocument.pdf
s3-dg.pdf
コンソールでは、キー名のプレフィックス (Development/
、Finance/
、Private/
) および区切り記号 ("/") を使用して、フォルダ構造を表します。s3-dg.pdf
キーにはプレフィックスがないため、そのオブジェクトはバケットのルートレベルに直接表示されます。Development/
フォルダを開くと、Projects.xlsx
オブジェクトが表示されます。
Amazon S3 ではバケットとオブジェクトをサポートしており、階層はありません。ただし、オブジェクトキー名のプレフィックスと区切り記号により、Amazon S3 コンソールや AWS SDK で階層を暗示し、フォルダの概念を導入できます。
Amazon S3 コンソールは、フォルダのプレフィックスと区切り記号の値をキーとしてゼロバイトのオブジェクトを作成することにより、フォルダオブジェクトの作成を実装します。これらのフォルダオブジェクトはコンソールに表示されません。それ以外の場合は、他のオブジェクトと同様に動作し、REST API、AWS CLI、および AWS SDK を使用して表示および操作できます。
オブジェクトキーの命名のガイドライン
オブジェクトキー名には UTF−8 文字を使用できます。ただし、キー名に特定の文字を使用すると、一部のアプリケーションやプロトコルで問題が発生することがあります。以下のガイドラインは、DNS、ウェブセーフ文字、XML パーサー、その他の API とのコンプライアンスを最大化するのに役立ちます。
セーフ文字
以下の文字セットは、一般的にキー名で使用しても安全です。
Alphanumeric characters |
|
Special characters |
|
有効なオブジェクトキー名の例を次に示します。
-
4my-organization
-
my.great_photos-2014/jan/myvacation.jpg
-
videos/2014/birthday/video1.wmv
注記
Amazon S3 コンソールを使用してダウンロードしたキー名がピリオド「.」で終わるオブジェクトは、ダウンロードしたオブジェクトのキー名からピリオド「.」が削除されます。ダウンロードしたオブジェクトのキー名の末尾をピリオド「.」に保持したままダウンロードするには、AWS Command Line Interface (AWS CLI)、AWS SDK、または REST API を使用します。
また、以下のプレフィックスの制約についても注意してください。
-
プレフィックスが「./」のオブジェクトは、AWS Command Line Interface (AWS CLI)、AWS SDK、または REST API を使用してアップロードまたはダウンロードします。Amazon S3 コンソールを使用することはできません。
-
プレフィックスが「../」のオブジェクトは、AWS Command Line Interface (AWS CLI) または Amazon S3 コンソールを使用してアップロードすることはできません。
特殊な処理を必要とする可能性がある文字
キー名で以下の文字を使用すると、追加のコード処理が必要になる場合があり、16 進数として URL エンコードまたは参照することが必要になる可能性があります。これらの文字の一部は表示不可能な文字であり、ブラウザで処理されない場合があります。この場合も、特殊な処理が必要です。
-
アンパサンド ("&")
-
ドル記号 ("$")
-
16 進数の 00~1F (10 進数の 0~31) の範囲および 7F (10 進数の 127) の ASCII 文字
-
アットマーク ("@")
-
等号 ("=")
-
セミコロン (";")
-
スラッシュ (/)
-
コロン (":")
-
プラス記号 ("+")
-
スペース – いくつかの用途 (特に複数のスペース) では、スペースの重要なシーケンスが失われる可能性があります。
-
カンマ (",")
-
疑問符 ("?")
使用しない方がよい文字
すべてのアプリケーションで一貫性を維持するには相当な量の特殊な処理が必要になるため、キー名には以下の文字を使用しないことをお勧めします。
-
バックスラッシュ ("\")
-
左中括弧 ("{")
-
表示不可能な ASCII 文字 (10 進数の 128 ~ 255 の文字)
-
カレット ("^")
-
右中括弧 ("}")
-
パーセント記号 ("%")
-
アクサングラーブ/バックティック ("`")
-
右角括弧 ("]")
-
引用符
-
大なり記号 (">")
-
左角括弧 ("[")
-
チルダ ("~")
-
小なり記号 ("<")
-
シャープ記号 ("#")
-
縦棒/パイプ ("|")
XML 関連のオブジェクトキーの制約
行末処理に関する XML 標準
' (
'
)” (
"
)& (
&
)< (
<
)> (
>
)\r (
または
)\n (
または

)
次の例では、キャリッジリターンの代わりに XML エンティティコードを使用する方法を示しています。この DeleteObjects
リクエストにより、key
パラメータ: /some/prefix/objectwith\rcarriagereturn
(\r はキャリッジリターン) を持つオブジェクトが削除されます。
<Delete xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> <Object> <Key>/some/prefix/objectwith carriagereturn</Key> </Object> </Delete>