

# ディレクトリバケットへのオブジェクトのアップロード
<a name="directory-buckets-objects-upload"></a>

Amazon S3 ディレクトリバケット作成後、オブジェクトをアップロードできます。次の例は、S3 コンソールと AWS SDK を使用してディレクトリバケットにオブジェクトをアップロードする方法を示しています。S3 Express One Zone を使用したオブジェクトの一括アップロードオペレーションの詳細については、「[オブジェクト管理](directory-bucket-high-performance.md#s3-express-features-object-management)」を参照してください。

## S3 コンソールの使用
<a name="directory-bucket-upload-console"></a>

1. AWS マネジメントコンソール にサインインし、Amazon S3 コンソール ([https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)) を開きます。

1. 左のナビゲーションペインで、**[ディレクトリバケット]** を選択します。

1. フォルダまたはファイルをアップロードするバケットの名前を選択します。

1. **[オブジェクト]** タブで、**[アップロード]** を選択します。

1. **[アップロード]** ページで、以下のいずれかを行います。
   + ファイルとフォルダを点線で示されているアップロードエリアにドラッグアンドドロップします。
   + **[ファイルの追加]** または **[フォルダの追加]** を選択し、アップロードするファイルまたはフォルダを選択して **[開く]** または **[アップロード]** を選択します。

1. **[チェックサム]** で、使用する **[チェックサム関数]** を選択します。

   （オプション) サイズが 16 MB 未満の単一のオブジェクトをアップロードする場合は、事前に計算されたチェックサム値を指定することもできます。事前に計算された値を指定すると、Amazon S3 は選択したチェックサム関数を使用して計算した値と比較します。値が一致しない場合、アップロードは開始されません。

1. **[アクセス許可]** と **[プロパティ]** セクションのオプションは、自動的にデフォルトに設定され、変更できません。ブロックパブリックアクセスは自動的に有効になり、ディレクトリバケットに対して S3 バージョニングと S3 Object Lock を有効にすることはできません。

   （オプション) オブジェクトにキーと値のペアのメタデータを追加する場合は、**[プロパティ]** セクションを展開し、**[メタデータ]**セクションで **[メタデータを追加]**を選択します。

1. リストされたファイルとフォルダをアップロードするには、**[アップロード]** を選択します。

   Amazon S3 はオブジェクトとフォルダをアップロードします。アップロードが完了すると、**[アップロード: ステータス]** ページに成功のメッセージが表示されます。

## AWS SDK の使用
<a name="directory-bucket-upload-sdks"></a>

------
#### [ SDK for Java 2.x ]

**Example**  

```
public static void putObject(S3Client s3Client, String bucketName, String objectKey, Path filePath) {
       //Using File Path to avoid loading the whole file into memory
       try {
           PutObjectRequest putObj = PutObjectRequest.builder()
                   .bucket(bucketName)
                   .key(objectKey)
                   //.metadata(metadata)
                   .build();
           s3Client.putObject(putObj, filePath);               
           System.out.println("Successfully placed " + objectKey +" into bucket "+bucketName);
                                              
       }
       
       catch (S3Exception e) {
           System.err.println(e.getMessage());
           System.exit(1);
       }
}
```

------
#### [ SDK for Python ]

**Example**  

```
import boto3
import botocore
from botocore.exceptions import ClientError
    
    
def put_object(s3_client, bucket_name, key_name, object_bytes):
    """  
    Upload data to a directory bucket.
    :param s3_client: The boto3 S3 client
    :param bucket_name: The bucket that will contain the object
    :param key_name: The key of the object to be uploaded
    :param object_bytes: The data to upload
    """
    try:
        response = s3_client.put_object(Bucket=bucket_name, Key=key_name,
                             Body=object_bytes)
        print(f"Upload object '{key_name}' to bucket '{bucket_name}'.") 
        return response
    except ClientError:    
        print(f"Couldn't upload object '{key_name}' to bucket '{bucket_name}'.")
        raise

def main():
    # Share the client session with functions and objects to benefit from S3 Express One Zone auth key
    s3_client = boto3.client('s3')
    # Directory bucket name must end with --zone-id--x-s3
    resp = put_object(s3_client, 'doc-bucket-example--use1-az5--x-s3', 'sample.txt', b'Hello, World!')
    print(resp)

if __name__ == "__main__":
    main()
```

------

## の使用AWS CLI
<a name="directory-upload-object-cli"></a>

次の `put-object` コマンド例は、AWS CLI を使用して Amazon S3 からオブジェクトをアップロードする方法を示しています。このコマンドを実行するには、`user input placeholders` をユーザー自身の情報に置き換えます。

```
aws s3api put-object --bucket bucket-base-name--zone-id--x-s3 --key sampleinut/file001.bin --body bucket-seed/file001.bin
```

詳細については、**AWS CLI コマンドリファレンスの「[https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/put-object.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/put-object.html)」を参照してください。

**Topics**
+ [ディレクトリバケットでのマルチパートアップロードの使用](s3-express-using-multipart-upload.md)