‹ 概要 に戻る

Amazon Lightsail でのオブジェクトキー名の理解

最終更新日: 2021 年 7 月 14 日

バケットにアップロードしたファイルは、オブジェクトとして Amazon Lightsail オブジェクトストレージサービスに保存されます。オブジェクトキー (またはキー名) によって、バケット内に保存されたオブジェクトは一意に識別されます。このガイドでは、Lightsail コンソールを通して表示される、バケットのフォルダ構造を構成するキー名とキー名のプレフィックスの概念を説明します。バケットについての詳細は、「Amazon Lightsail のオブジェクトストレージ」を参照してください。

オブジェクトキー名

Lightsail オブジェクトストレージサービスのデータモデルは、ファイルシステムに表示される階層構造ではなく、フラットな構造を使用します。フォルダとサブフォルダの階層はありません。ただし、 キー名のプレフィックスや区切り記号を使用して論理的な階層を暗示できます。Lightsail コンソールはキー名のプレフィックスを使用して、フォルダー構造のオブジェクトを表示します。

バケットに、次のようなオブジェクトキーを持つ 4 つのオブジェクトがあるとします。

  • Development/Projects.xls

  • Finance/statement1.pdf

  • Private/taxdocument.pdf

  • to-dos.doc

Lightsail コンソールでは、キー名のプレフィックス (Development/Finance/Private/) および区切り記号 (/) を使用して、フォルダ構造を表します。to-dos.doc キーにはプレフィックスがないため、そのオブジェクトはバケットのルートレベルに直接表示されます。Lightsail コンソールの Development/ フォルダをブラウズすると、Projects.xls オブジェクトが表示されます。Finance/ フォルダに statement1.pdf オブジェクト、および Private/ フォルダに taxdocument.pdf オブジェクトが表示されます。

Lightsail コンソールは、キー名のプレフィックスと区切り記号の値をキー名としてゼロバイトのオブジェクトを作成することにより、フォルダーオブジェクトの作成を許可します これらのフォルダオブジェクトはコンソールに表示されません。ただし、他のオブジェクトと同様に動作します。それらを表示および操作するには、Amazon S3 API、AWS Command Line Interface (AWS CLI)、または AWS SDKを使用します。

オブジェクトキーの命名のガイドライン

オブジェクトキー名には UTF-8 文字を使用できます。ただし、キー名に特定の文字を使用すると、一部のアプリケーションやプロトコルで問題が発生することがあります。以下のガイドラインは、DNS、ウェブセーフ文字、XML パーサー、その他の API とのコンプライアンスを最大化するのに役立ちます。

セーフ文字

以下の文字セットは、一般的にキー名で使用しても安全です。

  • アルファベットの文字

    • 0-9

    • a~z

    • A~Z

  • 特殊文字

    • スラッシュ (/)

    • 感嘆符 (!)

    • ハイフン (-)

    • 下線 (_)

    • ピリオド (.)

    • アスタリスク (*)

    • 一重引用符 (')

    • 丸かっこ開き (()

    • 丸かっこ閉じ ())

有効なオブジェクトキー名の例を次に示します。

  • 4my-organization

  • my.great_photos-2014/jan/myvacation.jpg

  • videos/2014/birthday/video1.wmv

重要

オブジェクトキー名が単一のピリオド (.)、2 つのピリオド (..) で終了する場合は、Lightsail コンソールを使用してオブジェクトをダウンロードすることはできません。キー名が 1 つまたは 2 つのピリオドで終了するオブジェクトをダウンロードするには、Amazon S3 API、AWS CLI、および AWS SDKを使用する必要があります。詳細については、「Amazon Lightsail バケットからオブジェクトをダウンロードする」を参照してください。

特殊な処理を必要とする可能性がある文字

キー名で以下の文字を使用すると、追加のコード処理が必要になる場合があり、16 進数として URL エンコードまたは参照することが必要になる可能性があります。これらの文字の一部は表示不可能な文字であり、ブラウザで処理されない場合があります。この場合も、特殊な処理が必要です。

  • アンパサンド ("&")

  • ドル記号 ("$")

  • 16 進数の 00~1F (10 進数の 0~31) の範囲および 7F (10 進数の 127) の ASCII 文字

  • アットマーク ("@")

  • 等号 ("=")

  • セミコロン (";")

  • コロン (":")

  • プラス記号 ("+")

  • スペース – いくつかの用途 (特に複数のスペース) では、スペースの重要なシーケンスが失われる可能性があります。

  • カンマ (",")

  • 疑問符 ("?")

使用しない方がよい文字

すべてのアプリケーションで一貫性を維持するには相当な量の特殊な処理が必要になるため、キー名には以下の文字を使用しないでください。

  • バックスラッシュ ("\")

  • 左中括弧 ("{")

  • 表示不可能な ASCII 文字 (10 進数の 128 ~ 255 の文字)

  • カレット ("^")

  • 右中括弧 ("}")

  • パーセント記号 ("%")

  • アクサングラーブ/バックティック ("`")

  • 右角括弧 ("]")

  • 引用符

  • 大なり記号 (">")

  • 左角括弧 ("[")

  • チルダ ("~")

  • 小なり記号 ("<")

  • シャープ記号 ("#")

  • 縦棒/パイプ ("|")

XML 関連のオブジェクトキーの制約

行末処理に関する XML 標準で規定されているとおり、すべての XML テキストは正規化され、1 つのキャリッジリターン (ASCII コード 13) と改行の直後のキャリッジリターン (ASCII コード 10) が単一の改行文字に置き換えられます。XML リクエストでオブジェクトキーを正しく解析するには、キャリッジリターンやその他の特殊文字を XML タグ内に挿入するときに、同等の XML エンティティコードに置き換える必要があります。以下では、当該特殊文字とそれに相当するエンティティコードのリストを示しています。

  • '' &apos;()

  • &quot;()

  • &&amp;()

  • <&lt;()

  • <&gt;()

  • &#13; または &#x0D; としての \r

  • &#10; または &#x0A; としての \n

次の例では、キャリッジリターンの代わりに XML エンティティコードを使用する方法を示しています。この DeleteObjects リクエストにより、 キーパラメータ /some/prefix/objectwith\rcarriagereturn (\r はキャリッジリターン) を持つオブジェクトが削除されます。

<Delete xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
 <Object>
 <Key>/some/prefix/objectwith&#13;carriagereturn</Key>
 </Object>
 </Delete>

Lightsail でのバケットとオブジェクトの管理

Lightsail オブジェクトストレージバケットを管理するための一般的なステップは次のとおりです。

  1. Amazon Lightsail オブジェクトストレージサービスのオブジェクトとバケットについて説明します。詳細については、「Amazon Lightsail のオブジェクトストレージ」を参照してください。

  2. Amazon Lightsail でバケットに付けることができる名前について説明します。詳細については、「Amazon Lightsail のバケットの命名規則」を参照してください。

  3. バケットを作成することにより、Lightsail オブジェクトストレージサービスの使用を開始します。詳細については、「Amazon Lightsail でのバケットの作成」を参照してください。

  4. バケットのセキュリティに関するベストプラクティスと、バケットに対して設定できるアクセス許可について説明します。バケットのすべてのオブジェクトをパブリックまたはプライベートにすることも、個別のオブジェクトをパブリックにすることもできます。また、アクセスキーを作成し、バケットにインスタンスをアタッチし、他の AWS アカウントへのアクセスを許可して、バケットへのアクセスを許可することもできます。詳細については、「Amazon Lightsail オブジェクトストレージのセキュリティのベストプラクティス」と「Amazon Lightsail のバケットアクセス許可について」を参照してください。

    バケットのアクセス許可について学習したら、次のガイドを参照してバケットへのアクセスを許可します。

  5. バケットのアクセスログ記録を有効にする方法と、アクセスログを使用してバケットのセキュリティを監査する方法について説明します。詳細については、以下のガイドを参照してください。

  6. Lightsail のバケットの管理をユーザーに許可する IAM ポリシーを作成します。詳細については、「Amazon Lightsail のバケットを管理する IAM ポリシー」を参照してください。

  7. バケットのオブジェクトのラベル付けと識別方法について説明します。詳細については、「Amazon Lightsail のオブジェクトのキー名について」を参照してください。

  8. バケットでファイルをアップロードする方法と、オブジェクトを管理する方法について説明します。詳細については、以下のガイドを参照してください。

  9. オブジェクトのバージョニングを有効にして、バケットに保存されたあらゆるオブジェクトのあらゆるバージョンを保存、取得、復元することができます。詳細については、「Amazon Lightsail のバケットでのオブジェクトのバージョニングの有効化と一時停止」を参照してください。

  10. オブジェクトのバージョニングを有効にすると、バケットのオブジェクトの以前のバージョンを復元できるようになります。詳細については、「Amazon Lightsail のバケットのオブジェクトの以前のバージョンの復元」を参照してください。

  11. バケットの使用率をモニタリングします。詳細については、「Amazon Lightsail のバケットのメトリクスの表示」を参照してください。

  12. バケットの使用率がしきい値を超えたときにバケットメトリクスが通知されるようにアラームを設定します。詳細については、「Amazon Lightsail のバケットメトリクスアラームの作成」を参照してください。

  13. ストレージおよびネットワーク転送で不足している場合は、バケットのストレージプランを変更します。詳細については、「Amazon Lightsail のバケットのプランを変更する」を参照してください。

  14. バケットを他のリソースに接続する方法について説明します。詳細については、以下のチュートリアルを参照してください。

  15. バケットを使用しなくなった場合は、バケットを削除します。詳細については、「Amazon Lightsail のバケットの削除」を参照してください。