

# GetObject (SOAP API)
<a name="SOAPGetObject"></a>

**注記**  
 SOAP API for Amazon S3 は新規顧客には利用できず、2025 年 8 月 31 日にサポート終了 (EOL) となります。REST API か AWS SDK を使用することをお勧めします。

`GetObject` オペレーションは、オブジェクトの現在のバージョンを返します。削除マーカーが設定されているオブジェクトを現在のバージョンとして `GetObject` を実行しようとすると、S3 は 404 エラーを返します。SOAP API を使用して、指定されたバージョンのオブジェクトを取得することはできません。そのためには、REST API を使用します。詳細については、「[バージョニング](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Versioning.html)」を参照してください。その他のオプションについては、[GetObjectExtended (SOAP API)](SOAPGetObjectExtended.md) オペレーションを使用します。

**注記**  
値「soap」を持つオブジェクトキー名は、[仮想ホスト形式のリクエスト](https://docs.aws.amazon.com/AmazonS3/latest/userguide/VirtualHosting.html#virtual-hosted-style-access)についてサポートされていません。「soap」が使用されるオブジェクトキー名値の場合、[パス形式の URL](https://docs.aws.amazon.com/AmazonS3/latest/userguide/VirtualHosting.html#path-style-access) を代わりに使用する必要があります。

**Example**  
この例では、「quotes」バケットから「Nelson」オブジェクトを取得します。  
`Sample Request`  

```
 1. <GetObject xmlns="https://doc.s3.amazonaws.com/2006-03-01">
 2.   <Bucket>quotes</Bucket>
 3.   <Key>Nelson</Key>
 4.   <GetMetadata>true</GetMetadata>
 5.   <GetData>true</GetData>
 6.   <InlineData>true</InlineData>
 7.   <AWSAccessKeyId>AKIAIOSFODNN7EXAMPLE</AWSAccessKeyId>
 8.   <Timestamp>2006-03-01T12:00:00.183Z</Timestamp>
 9.   <Signature>Iuyz3d3P0aTou39dzbqaEXAMPLE=</Signature>
10. </GetObject>
```
`Sample Response`  

```
 1. <GetObjectResponse xmlns="https://s3.amazonaws.com/doc/2006-03-01">
 2.   <GetObjectResponse>
 3.     <Status>
 4.       <Code>200</Code>
 5.       <Description>OK</Description>
 6.     </Status>
 7.     <Metadata>
 8.       <Name>Content-Type</Name>
 9.       <Value>text/plain</Value>
10.     </Metadata>
11.     <Metadata>
12.       <Name>family</Name>
13.       <Value>Muntz</Value>
14.     </Metadata>
15.     <Data>aGEtaGE=</Data>
16.     <LastModified>2006-01-01T12:00:00.000Z</LastModified>
17.     <ETag>&quot;828ef3fdfa96f00ad9f27c383fc9ac7f&quot;</ETag>
18.   </GetObjectResponse>
19. </GetObjectResponse>
```

## 要素
<a name="SOAPGetObjectElements"></a>
+ `Bucket:` オブジェクトを取得するバケット。
+ `Key:` オブジェクトを識別するキー。
+ `GetMetadata:` これが true の場合、メタデータはオブジェクトとともに返されます。
+ `GetData:` これが true の場合、オブジェクトデータが返されます。
+ `InlineData:` これが true の場合、レスポンスの SOAP 本文の一部として、Base64 でエンコードされたデータが返されます。false の場合、データは SOAP アタッチメントとして返されます。InlineData オプションは、大きなオブジェクトでの使用には適していません。このオペレーションは、1 MB 以下のデータを操作する場合に限定されています。InlineData フラグが設定された GetObject リクエストは、結果のデータパラメータが 1MB を超えてエンコードされた場合、`InlineDataTooLargeError` ステータスコードで失敗します。大きなオブジェクトをダウンロードするには、InlineData フラグを設定せずに GetObject を呼び出すか、代わりに REST API を使用することを検討してください。

## 返される要素
<a name="SOAPGetObjectReturnedElements"></a>
+ `Metadata:` オブジェクトに保存されている名前と値のペアのメタデータ。
+ `Data:` リクエストで InlineData が true の場合、これには Base64 エンコードされたオブジェクトデータが含まれます。
+ `LastModified:` オブジェクトが Amazon S3 に保存された時刻。
+ `ETag:` オブジェクトのエンティティタグ。これは、条件付きの GET を行うために使用できるオブジェクトのハッシュ値です。ETag は、オブジェクトのコンテンツに加えた変更のみを反映し、メタデータに加えた変更は反映しません。

## アクセスコントロール
<a name="SOAPGetObjectAccessControl"></a>

オブジェクトへの `READ` アクセス権が付与されている場合にのみ、オブジェクトを読み取ることができます。

## SOAP チャンクダウンロードと再開可能なダウンロード
<a name="SOAPResumableDownloads"></a>

`GET` の柔軟性を提供するために、Amazon S3 はチャンクダウンロードと再開可能なダウンロードをサポートしています。

以下から選択します。
+ 大きなオブジェクトをダウンロードする場合は、それらを小さなチャンクに分割できます。詳細については、[レンジ GET](#SOAPRangeGETs)を参照してください。
+ `GET` オペレーションが失敗した場合、ファイル全体ではなく残りの部分をダウンロードするようにアプリケーションを設計できます。詳細については、[REST GET エラー回復](#SOAPGETErrorRecovery)を参照してください。

### レンジ GET
<a name="SOAPRangeGETs"></a>

一部のクライアントでは、大きなダウンロードを小さなダウンロードに分割する場合があります。GET を小さな単位に分割するには、Range を使用します。

GET を小さな単位に分割する前に、そのサイズを決定する必要があります。例えば、次のリクエストは bigfile オブジェクトのサイズを取得します。

```
1. <ListBucket xmlns="https://doc.s3.amazonaws.com/2006-03-01">
2.   <Bucket>bigbucket</Bucket>
3.   <Prefix>bigfile</Prefix>
4.   <MaxKeys>1</MaxKeys>
5.   <AWSAccessKeyId>AKIAIOSFODNN7EXAMPLE</AWSAccessKeyId>
6.   <Timestamp>2006-03-01T12:00:00.183Z</Timestamp>
7.   <Signature>Iuyz3d3P0aTou39dzbqaEXAMPLE=</Signature>
8. </ListBucket>
```

Amazon S3 は以下のレスポンスを返します。

```
 1. <ListBucketResult xmlns="https://s3.amazonaws.com/doc/2006-03-01">
 2.   <Name>quotes</Name>
 3.   <Prefix>N</Prefix>
 4.   <MaxKeys>1</MaxKeys>
 5.   <IsTruncated>false</IsTruncated>
 6.   <Contents>
 7.     <Key>bigfile</Key>
 8.     <LastModified>2006-01-01T12:00:00.000Z</LastModified>
 9.     <ETag>&quot;828ef3fdfa96f00ad9f27c383fc9ac7f&quot;</ETag>
10.     <Size>2023276</Size>
11.     <StorageClass>STANDARD</StorageClass>
12.     <Owner>
13.       <ID>bcaf1ffd86f41161ca5fb16fd081034f</ID>
14.       <DisplayName>bigfile</DisplayName>
15.      </Owner>
16.   </Contents>
17. </ListBucketResult>
```

以下は、bigfile オブジェクトから最初の 1 メガバイトをダウンロードするリクエストです。

```
 1. <GetObject xmlns="https://doc.s3.amazonaws.com/2006-03-01">
 2.   <Bucket>bigbucket</Bucket>
 3.   <Key>bigfile</Key>
 4.   <GetMetadata>true</GetMetadata>
 5.   <GetData>true</GetData>
 6.   <InlineData>true</InlineData>
 7.   <ByteRangeStart>0</ByteRangeStart>
 8.   <ByteRangeEnd>1048576</ByteRangeEnd>
 9.   <AWSAccessKeyId>AKIAIOSFODNN7EXAMPLE</AWSAccessKeyId>
10.   <Timestamp>2006-03-01T12:00:00.183Z</Timestamp>
11.   <Signature>Iuyz3d3P0aTou39dzbqaEXAMPLE=</Signature>
12. </GetObject>
```

Amazon S3 は、ファイルの最初の 1 メガバイトとファイルの Etag を返します。

```
 1. <GetObjectResponse xmlns="http://s3.amazonaws.com/doc/2006-03-01">
 2.   <GetObjectResponse>
 3.     <Status>
 4.       <Code>200</Code>
 5.       <Description>OK</Description>
 6.     </Status>
 7.     <Metadata>
 8.       <Name>Content-Type</Name>
 9.       <Value>text/plain</Value>
10.     </Metadata>
11.     <Metadata>
12.       <Name>family</Name>
13.       <Value>Muntz</Value>
14.     </Metadata>
15.     <Data>--first megabyte of bigfile--</Data>
16.     <LastModified>2006-01-01T12:00:00.000Z</LastModified>
17.     <ETag>"828ef3fdfa96f00ad9f27c383fc9ac7f"</ETag>
18.   </GetObjectResponse>
19. </GetObjectResponse>
```

前の部分がダウンロードされてからファイルが変更されないようにするには、IfMatch 要素を指定します。IfMatch 要素は必須ではありませんが、変更される可能性が高いコンテンツには推奨されます。

以下は、IfMatch リクエストヘッダーを使用してファイルの残りの部分を取得するリクエストです。

```
 1. <GetObject xmlns="https://doc.s3.amazonaws.com/2006-03-01">
 2.   <Bucket>bigbucket</Bucket>
 3.   <Key>bigfile</Key>
 4.   <GetMetadata>true</GetMetadata>
 5.   <GetData>true</GetData>
 6.   <InlineData>true</InlineData>
 7.   <ByteRangeStart>10485761</ByteRangeStart>
 8.   <ByteRangeEnd>2023276</ByteRangeEnd>
 9.   <IfMatch>"828ef3fdfa96f00ad9f27c383fc9ac7f"</IfMatch>
10.   <AWSAccessKeyId>AKIAIOSFODNN7EXAMPLE</AWSAccessKeyId>
11.   <Timestamp>2006-03-01T12:00:00.183Z</Timestamp>
12.   <Signature>Iuyz3d3P0aTou39dzbqaEXAMPLE=</Signature>
13. </GetObject>
```

Amazon S3 は、次のレスポンスとファイルの残りの部分を返します。

```
 1. <GetObjectResponse xmlns="http://s3.amazonaws.com/doc/2006-03-01">
 2.   <GetObjectResponse>
 3.     <Status>
 4.       <Code>200</Code>
 5.       <Description>OK</Description>
 6.     </Status>
 7.     <Metadata>
 8.       <Name>Content-Type</Name>
 9.       <Value>text/plain</Value>
10.     </Metadata>
11.     <Metadata>
12.       <Name>family</Name>
13.       <Value>>Muntz</Value>
14.     </Metadata>
15.     <Data>--remainder of bigfile--</Data>
16.     <LastModified>2006-01-01T12:00:00.000Z</LastModified>
17.     <ETag>"828ef3fdfa96f00ad9f27c383fc9ac7f"</ETag>
18.   </GetObjectResponse>
19. </GetObjectResponse>
```

### バージョニングされた GetObject
<a name="SOAPResumableDownloads-versioned-getobject"></a>

次のリクエストは、バケット内のオブジェクトの指定されたバージョンを返します。

```
 1. <GetObject xmlns="https://doc.s3.amazonaws.com/2006-03-01">
 2. <Bucket>quotes</Bucket>
 3. <Key>Nelson</Key>
 4. <GetMetadata>true</GetMetadata>
 5. <GetData>true</GetData>
 6. <InlineData>true</InlineData>
 7. <AWSAccessKeyId>AKIAIOSFODNN7EXAMPLE</AWSAccessKeyId>
 8. <Timestamp>2006-03-01T12:00:00.183Z</Timestamp>
 9. <Signature>Iuyz3d3P0aTou39dzbqaEXAMPLE=</Signature>
10. </GetObject>
```

レスポンス例

```
 1. <GetObjectResponse xmlns="https://s3.amazonaws.com/doc/2006-03-01">
 2. <GetObjectResponse>
 3. <Status>
 4. <Code>200</Code>
 5. <Description>OK</Description>
 6. </Status>
 7. <Metadata>
 8. <Name>Content-Type</Name>
 9. <Value>text/plain</Value>
10. </Metadata>
11. <Metadata>
12. <Name>family</Name>
13. <Value>Muntz</Value>
14. </Metadata>
15. <Data>aGEtaGE=</Data>
16. <LastModified>2006-01-01T12:00:00.000Z</LastModified>
17. <ETag>&quot;828ef3fdfa96f00ad9f27c383fc9ac7f&quot;</ETag>
18. </GetObjectResponse>
19. </GetObjectResponse>
```

### REST GET エラー回復
<a name="SOAPGETErrorRecovery"></a>

オブジェクトの GET が失敗した場合、ダウンロードする範囲を指定してファイルの残りの部分を取得できます。そのためには、`ListBucket` を使用してオブジェクトのサイズを取得し、ファイルの残りの部分でレンジ `GET` を実行する必要があります。詳細については、「[GetObjectExtended (SOAP API)](SOAPGetObjectExtended.md)」を参照してください。

### 関連リソース
<a name="SOAPGettingObjectsRelatedTopics"></a>

[オブジェクトに対するオペレーション (SOAP API)](SOAPObjectsOps.md)