

# ディレクトリバケットの違い
<a name="s3-express-differences"></a>

Amazon S3 を使用する場合、アプリケーションとパフォーマンスの要件に最適なバケットタイプを選択できます。ディレクトリバケットは、低レイテンシーやデータレジデンシーのユースケースに最適なタイプのバケットです。ディレクトリバケットの詳細については、「[ディレクトリバケットの使用](directory-buckets-overview.md)」を参照してください。

 ディレクトリバケットの相違点の詳細については、以下のトピックを参照してください。

**Topics**
+ [ディレクトリバケットの違い](#s3-express-specifications)
+ [ディレクトリバケットでサポートされている API オペレーション](#s3-express-differences-api-operations)
+ [ディレクトリバケットでサポートされていない Amazon S3 の機能](#s3-express-differences-unsupported-features)

## ディレクトリバケットの違い
<a name="s3-express-specifications"></a>
+ **ディレクトリバケット名** 
  +  ディレクトリバケット名は、ユーザーが指定するベース名と、バケットの配置先である AWS ゾーン (アベイラビリティーゾーンまたは Local Zone) の ID を含むサフィックスで構成され、その後に `--x-s` が続きます。ディレクトリバケット名に関するルールのリストと例については、「[ディレクトリバケットの命名規則](https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html)」を参照してください。
+ **`ListObjectsV2` の動作** 
  + ディレクトリバケットの場合、`ListObjectsV2` は辞書順 (アルファベット順) にオブジェクトを返すわけではありません。さらに、プレフィックスは区切り文字で終わる必要があり、区切り文字として指定できるのは「/」のみです。
  + ディレクトリバケットの場合、`ListObjectsV2` レスポンスには、進行中のマルチパートアップロードにのみ関連するプレフィックスが含まれます。
+ **削除動作** – ディレクトリバケット内のオブジェクトを削除すると、Amazon S3 はオブジェクトパス内の空のディレクトリをすべて再帰的に削除します。例えば、オブジェクトキー `dir1/dir2/file1.txt` を削除した場合、Amazon S3 は `file1.txt` を削除します。` dir1/` と `dir2/` のディレクトリが空で、その他のオブジェクトが含まれていない場合、Amazon S3 はこれらのディレクトリも削除します。
+ **ETag とチェックサム** – ディレクトリバケットのエンティティタグ (ETag) はオブジェクトに一意のランダムな英数字文字列であり、MD5 チェックサムではありません。ディレクトリバケットで追加のチェックサムを使用する方法の詳細については、「[S3 の追加のチェックサムのベストプラクティス](s3-express-optimizing-performance.md#s3-express-optimizing-performance-checksums)」を参照してください。
+ **`DeleteObjects` リクエスト内のオブジェクトキー** 
  + `DeleteObjects` リクエストのオブジェクトキーには、空白以外の文字を 1 つ以上含める必要があります。すべての空白文字を含む文字列は `DeleteObjects` リクエストではサポートされていません。
  + `DeleteObjects` リクエストのオブジェクトキーには、改行 (`\n`)、タブ (`\t`) とキャリッジリターン (`\r`) 文字を除き、Unicode 制御文字を含めることはできません。
+ **リージョンエンドポイントとゾーンエンドポイント** – ディレクトリバケットのバケット管理 API オペレーションは、リージョンエンドポイントを介して利用可能であり、リージョンエンドポイント API オペレーションと呼ばれます。リージョンエンドポイント API オペレーションの例は、CreateBucket や DeleteBucket です。ディレクトリバケットを作成した後、ゾーンエンドポイント API オペレーションを使用して、ディレクトリバケット内のオブジェクトをアップロードして管理できます。ゾーンエンドポイント API オペレーションは、ゾーンエンドポイントを通じて実行できます。ゾーン別エンドポイント API オペレーションの例には、`PutObject`、`CopyObject` があります。ディレクトリバケットを使用する場合は、すべてのリクエストでリージョンを指定する必要があります。リージョンエンドポイントの場合は、`s3express-control.us-west-2.amazonaws.com` などのリージョンを指定します。ゾーンエンドポイントの場合は、`s3express-usw2-az1.us-west-2.amazonaws.com` など、リージョンとアベイラビリティーゾーンの両方を指定します。詳細については、「[ディレクトリバケットのリージョンエンドポイントとゾーンエンドポイント](s3-express-Regions-and-Zones.md)」を参照してください。
+ **マルチパートアップロード** – マルチパートアップロードプロセスを使用して、ディレクトリバケットに保存されている大きなオブジェクトをアップロードおよびコピーできます。ただし、ディレクトリバケットに保存されているオブジェクトでマルチパートアップロードプロセスを使用する場合は、以下のような違いがあります。詳細については、「[ディレクトリバケットでのマルチパートアップロードの使用](s3-express-using-multipart-upload.md)」を参照してください。
  + オブジェクトの作成日はマルチパートアップロードの完了日となります。
  + マルチパート番号には連続したパート番号を使用する必要があります。連続しないパーツ番号を使用してマルチパートアップロードリクエストを実行しようとすると、Amazon S3 は HTTP `400 (Bad Request)` エラーを生成します。
  + マルチパートアップロードを開始するユーザーは、`s3express:CreateSession` アクセス許可を通じて明示的に `AbortMultipartUpload` へのアクセス許可が付与されている場合にのみ、マルチパートアップロードリクエストを中止できます。詳細については、「[IAM を使用したリージョンエンドポイント API オペレーションの承認](s3-express-security-iam.md)」を参照してください。
+ **ディレクトリバケットを空にする** – AWS Command Line Interface (CLI) による `s3 rm` コマンド、Mountpoint による `delete` オペレーション、AWS マネジメントコンソール による**空の**バケットオプションボタンでは、ディレクトリバケット内の進行中のマルチパートアップロードを削除できません。こうした進行中のマルチパートアップロードを削除するには、`ListMultipartUploads` オペレーションを使用してバケット内の進行中のマルチパートアップロードを一覧表示し、`AbortMultipartUpload` オペレーションを使用して進行中のすべてのマルチパートアップロードを中止します。
+ **AWS Local Zones** – Local Zones は、汎用バケットではなくディレクトリバケットでのみサポートされます。
  +  既存のオブジェクトへのデータの追加は、Local Zones に存在するディレクトリバケットではサポートされていません。アベイラビリティーゾーンに存在するディレクトリバケット内の既存のオブジェクトにのみデータを追加できます。

## ディレクトリバケットでサポートされている API オペレーション
<a name="s3-express-differences-api-operations"></a>

ディレクトリバケットは、リージョン (バケットレベル、またはコントロールプレーン) とゾーン (オブジェクトレベル、またはデータプレーン) の両方のエンドポイント API オペレーションをサポートします。詳細については、「[ディレクトリバケットのネットワーク](s3-express-networking.md)」および「[エンドポイントとゲートウェイ VPC エンドポイント](directory-bucket-high-performance.md#s3-express-overview-endpoints)」を参照してください。サポートされている API オペレーションのリストについては、「[ディレクトリバケット API オペレーション](s3-express-APIs.md)」を参照してください。

## ディレクトリバケットでサポートされていない Amazon S3 の機能
<a name="s3-express-differences-unsupported-features"></a>

以下の Amazon S3 の機能は、ディレクトリバケットでサポートされていません。
+ AWS マネージドポリシー
+ S3 向け AWS PrivateLink
+ MD5 チェックサム
+ 多要素認証 (MFA) Delete
+ S3 オブジェクトロック
+ リクエスタ支払い
+ S3 Access Grants
+ Amazon CloudWatch のリクエストメトリクス
+ S3 イベント通知
+ S3 ライフサイクルの移行アクション
+ S3 マルチリージョンアクセスポイント
+ S3 Object Lambda アクセスポイント
+ S3 バージョニング
+ S3 インベントリ
+ S3 レプリケーション 
+ オブジェクトタグ
+ S3 Select
+ サーバーアクセスログ
+ 静的ウェブサイトホスティング
+ S3 Storage Lens
+ S3 Storage Lens グループ
+ S3 Transfer Acceleration
+ AWS Key Management Service (AWS KMS) キーによる二層式サーバー側の暗号化 (DSSE-KMS) 
+ お客様が用意したキーを使用したサーバー側の暗号化 (SSE-C)
+ Amazon S3 コンソールで新しいバケットを作成する際に、既存のバケットの設定をコピーするオプション
+ 拡張アクセス拒否 (HTTP `403 Forbidden`) エラーメッセージ