このページでは、Cloud Storage でオブジェクトのアップロードを行う際に従う必要のある、命名ガイドラインの概要を説明します。オブジェクトをアップロードする方法については、オブジェクトのアップロードに関するガイドをご覧ください。
オブジェクト名の要件
オブジェクト名は、次の要件を満たす必要があります。
- オブジェクト名は Unicode 文字で任意に設定でき、UTF-8 エンコード時の長さが 1~1,024 バイトになるようにします。
- オブジェクト名に、改行やラインフィード文字を含めることはできません。
- オブジェクト名の先頭を
.well-known/acme-challenge/
にすることはできません。 - オブジェクト名を「
.
」や「..
」にすることはできません。
改行とラインフィード文字の詳細は、改行についてのページをご覧ください。
オブジェクト名では次のことを避けるよう強くおすすめします。
- XML 1.0 で不正な制御文字(#x7F~#x84 および #x86~#x9F): オブジェクトを一覧表示するときにこれらの文字が原因で XML リストに問題が発生します。
- 「#」文字: Google Cloud CLI コマンドは、#<数字文字列> で終わるオブジェクト名をバージョン識別子として解釈するので、オブジェクト名に「#」が含まれていると、gcloud CLI を使用してバージョン指定されたオブジェクトのオペレーションを実行することが困難または不可能になる可能性があります。
- 「[」、「]」、「*」、「?」の文字:
gcloud storage
と gsutil はこれらの文字をワイルドカードとして解釈します。これらの文字がオブジェクト名に含まれていると、これらのツールを使用してワイルドカードのオペレーションを実行することが困難または不可能になる可能性があります。 - 機密情報または個人を特定できる情報(PII): オブジェクト名は、オブジェクト データよりも広い範囲で表示されます。たとえば、オブジェクト名は、オブジェクトの URL やバケット内のオブジェクトを一覧表示するときに表示されます。
オブジェクト名に関する考慮事項
オブジェクト名はバケット内のフラットな名前空間に置かれます。そのため、以下のようになります。
- さまざまなバケットに同じ名前のオブジェクトを含めることが可能です。
- オブジェクトはバケットのサブディレクトリ内には存在しません。
たとえば、paris.jpg
がサブディレクトリ /europe/france
に存在することを表すため、オブジェクトに /europe/france/paris.jpg
という名前を付けたとしても、Cloud Storage にとってそのオブジェクトは単にバケット内に /europe/france/paris.jpg
という名前で存在しているにすぎません。そのため、Cloud Storage 内では、区切り文字としてスラッシュを使用することで、深くネストしたディレクトリ状の構造を作ることは可能ですが、ネイティブ ファイル システムで深くネストしたサブディレクトリを一覧表示するときのようなパフォーマンスは得られません。
バケットと同様に、既存のオブジェクトの名前を直接変更することはできませんが、元のオブジェクトをコピーして削除することで、間接的にオブジェクトの名前を変更できます。
大規模なアップロードでシーケンシャルな名前を使用しないでパフォーマンスを最適化する方法については、リクエスト レートのベスト プラクティスをご覧ください。シーケンシャルな名前でアップロードされたオブジェクトは、同じバックエンド サーバーにヒットしてパフォーマンスが低下する可能性があります。