GetObject (SOAP API)
注記
SOAP API for Amazon S3 は新規顧客には利用できず、2025 年 8 月 31 日にサポート終了 (EOL) となります。REST API か AWS SDK を使用することをお勧めします。
GetObject オペレーションは、オブジェクトの現在のバージョンを返します。削除マーカーが設定されているオブジェクトを現在のバージョンとして GetObject を実行しようとすると、S3 は 404 エラーを返します。SOAP API を使用して、指定されたバージョンのオブジェクトを取得することはできません。そのためには、REST API を使用します。詳細については、「バージョニング」を参照してください。その他のオプションについては、GetObjectExtended (SOAP API) オペレーションを使用します。
注記
値「soap」を持つオブジェクトキー名は、仮想ホスト形式のリクエストについてサポートされていません。「soap」が使用されるオブジェクトキー名値の場合、パス形式の URL を代わりに使用する必要があります。
例
この例では、「quotes」バケットから「Nelson」オブジェクトを取得します。
Sample Request
<GetObject xmlns="https://doc.s3.amazonaws.com/2006-03-01"> <Bucket>quotes</Bucket> <Key>Nelson</Key> <GetMetadata>true</GetMetadata> <GetData>true</GetData> <InlineData>true</InlineData> <AWSAccessKeyId>AKIAIOSFODNN7EXAMPLE</AWSAccessKeyId> <Timestamp>2006-03-01T12:00:00.183Z</Timestamp> <Signature>Iuyz3d3P0aTou39dzbqaEXAMPLE=</Signature> </GetObject>
Sample Response
<GetObjectResponse xmlns="https://s3.amazonaws.com/doc/2006-03-01"> <GetObjectResponse> <Status> <Code>200</Code> <Description>OK</Description> </Status> <Metadata> <Name>Content-Type</Name> <Value>text/plain</Value> </Metadata> <Metadata> <Name>family</Name> <Value>Muntz</Value> </Metadata> <Data>aGEtaGE=</Data> <LastModified>2006-01-01T12:00:00.000Z</LastModified> <ETag>"828ef3fdfa96f00ad9f27c383fc9ac7f"</ETag> </GetObjectResponse> </GetObjectResponse>
要素
-
Bucket:オブジェクトを取得するバケット。 -
Key:オブジェクトを識別するキー。 -
GetMetadata:これが true の場合、メタデータはオブジェクトとともに返されます。 -
GetData:これが true の場合、オブジェクトデータが返されます。 -
InlineData:これが true の場合、レスポンスの SOAP 本文の一部として、Base64 でエンコードされたデータが返されます。false の場合、データは SOAP アタッチメントとして返されます。InlineData オプションは、大きなオブジェクトでの使用には適していません。このオペレーションは、1 MB 以下のデータを操作する場合に限定されています。InlineData フラグが設定された GetObject リクエストは、結果のデータパラメータが 1MB を超えてエンコードされた場合、InlineDataTooLargeErrorステータスコードで失敗します。大きなオブジェクトをダウンロードするには、InlineData フラグを設定せずに GetObject を呼び出すか、代わりに REST API を使用することを検討してください。
返される要素
-
Metadata:オブジェクトに保存されている名前と値のペアのメタデータ。 -
Data:リクエストで InlineData が true の場合、これには Base64 エンコードされたオブジェクトデータが含まれます。 -
LastModified:オブジェクトが Amazon S3 に保存された時刻。 -
ETag:オブジェクトのエンティティタグ。これは、条件付きの GET を行うために使用できるオブジェクトのハッシュ値です。ETag は、オブジェクトのコンテンツに加えた変更のみを反映し、メタデータに加えた変更は反映しません。
アクセスコントロール
オブジェクトへの READ アクセス権が付与されている場合にのみ、オブジェクトを読み取ることができます。
SOAP チャンクダウンロードと再開可能なダウンロード
GET の柔軟性を提供するために、Amazon S3 はチャンクダウンロードと再開可能なダウンロードをサポートしています。
以下から選択します。
-
大きなオブジェクトをダウンロードする場合は、それらを小さなチャンクに分割できます。詳細については、レンジ GETを参照してください。
-
GETオペレーションが失敗した場合、ファイル全体ではなく残りの部分をダウンロードするようにアプリケーションを設計できます。詳細については、REST GET エラー回復を参照してください。
レンジ GET
一部のクライアントでは、大きなダウンロードを小さなダウンロードに分割する場合があります。GET を小さな単位に分割するには、Range を使用します。
GET を小さな単位に分割する前に、そのサイズを決定する必要があります。例えば、次のリクエストは bigfile オブジェクトのサイズを取得します。
<ListBucket xmlns="https://doc.s3.amazonaws.com/2006-03-01"> <Bucket>bigbucket</Bucket> <Prefix>bigfile</Prefix> <MaxKeys>1</MaxKeys> <AWSAccessKeyId>AKIAIOSFODNN7EXAMPLE</AWSAccessKeyId> <Timestamp>2006-03-01T12:00:00.183Z</Timestamp> <Signature>Iuyz3d3P0aTou39dzbqaEXAMPLE=</Signature> </ListBucket>
Amazon S3 は以下のレスポンスを返します。
<ListBucketResult xmlns="https://s3.amazonaws.com/doc/2006-03-01"> <Name>quotes</Name> <Prefix>N</Prefix> <MaxKeys>1</MaxKeys> <IsTruncated>false</IsTruncated> <Contents> <Key>bigfile</Key> <LastModified>2006-01-01T12:00:00.000Z</LastModified> <ETag>"828ef3fdfa96f00ad9f27c383fc9ac7f"</ETag> <Size>2023276</Size> <StorageClass>STANDARD</StorageClass> <Owner> <ID>bcaf1ffd86f41161ca5fb16fd081034f</ID> <DisplayName>bigfile</DisplayName> </Owner> </Contents> </ListBucketResult>
以下は、bigfile オブジェクトから最初の 1 メガバイトをダウンロードするリクエストです。
<GetObject xmlns="https://doc.s3.amazonaws.com/2006-03-01"> <Bucket>bigbucket</Bucket> <Key>bigfile</Key> <GetMetadata>true</GetMetadata> <GetData>true</GetData> <InlineData>true</InlineData> <ByteRangeStart>0</ByteRangeStart> <ByteRangeEnd>1048576</ByteRangeEnd> <AWSAccessKeyId>AKIAIOSFODNN7EXAMPLE</AWSAccessKeyId> <Timestamp>2006-03-01T12:00:00.183Z</Timestamp> <Signature>Iuyz3d3P0aTou39dzbqaEXAMPLE=</Signature> </GetObject>
Amazon S3 は、ファイルの最初の 1 メガバイトとファイルの Etag を返します。
<GetObjectResponse xmlns="http://s3.amazonaws.com/doc/2006-03-01"> <GetObjectResponse> <Status> <Code>200</Code> <Description>OK</Description> </Status> <Metadata> <Name>Content-Type</Name> <Value>text/plain</Value> </Metadata> <Metadata> <Name>family</Name> <Value>Muntz</Value> </Metadata> <Data>--first megabyte of bigfile--</Data> <LastModified>2006-01-01T12:00:00.000Z</LastModified> <ETag>"828ef3fdfa96f00ad9f27c383fc9ac7f"</ETag> </GetObjectResponse> </GetObjectResponse>
前の部分がダウンロードされてからファイルが変更されないようにするには、IfMatch 要素を指定します。IfMatch 要素は必須ではありませんが、変更される可能性が高いコンテンツには推奨されます。
以下は、IfMatch リクエストヘッダーを使用してファイルの残りの部分を取得するリクエストです。
<GetObject xmlns="https://doc.s3.amazonaws.com/2006-03-01"> <Bucket>bigbucket</Bucket> <Key>bigfile</Key> <GetMetadata>true</GetMetadata> <GetData>true</GetData> <InlineData>true</InlineData> <ByteRangeStart>10485761</ByteRangeStart> <ByteRangeEnd>2023276</ByteRangeEnd> <IfMatch>"828ef3fdfa96f00ad9f27c383fc9ac7f"</IfMatch> <AWSAccessKeyId>AKIAIOSFODNN7EXAMPLE</AWSAccessKeyId> <Timestamp>2006-03-01T12:00:00.183Z</Timestamp> <Signature>Iuyz3d3P0aTou39dzbqaEXAMPLE=</Signature> </GetObject>
Amazon S3 は、次のレスポンスとファイルの残りの部分を返します。
<GetObjectResponse xmlns="http://s3.amazonaws.com/doc/2006-03-01"> <GetObjectResponse> <Status> <Code>200</Code> <Description>OK</Description> </Status> <Metadata> <Name>Content-Type</Name> <Value>text/plain</Value> </Metadata> <Metadata> <Name>family</Name> <Value>>Muntz</Value> </Metadata> <Data>--remainder of bigfile--</Data> <LastModified>2006-01-01T12:00:00.000Z</LastModified> <ETag>"828ef3fdfa96f00ad9f27c383fc9ac7f"</ETag> </GetObjectResponse> </GetObjectResponse>
バージョニングされた GetObject
次のリクエストは、バケット内のオブジェクトの指定されたバージョンを返します。
<GetObject xmlns="https://doc.s3.amazonaws.com/2006-03-01"> <Bucket>quotes</Bucket> <Key>Nelson</Key> <GetMetadata>true</GetMetadata> <GetData>true</GetData> <InlineData>true</InlineData> <AWSAccessKeyId>AKIAIOSFODNN7EXAMPLE</AWSAccessKeyId> <Timestamp>2006-03-01T12:00:00.183Z</Timestamp> <Signature>Iuyz3d3P0aTou39dzbqaEXAMPLE=</Signature> </GetObject>
レスポンス例
<GetObjectResponse xmlns="https://s3.amazonaws.com/doc/2006-03-01"> <GetObjectResponse> <Status> <Code>200</Code> <Description>OK</Description> </Status> <Metadata> <Name>Content-Type</Name> <Value>text/plain</Value> </Metadata> <Metadata> <Name>family</Name> <Value>Muntz</Value> </Metadata> <Data>aGEtaGE=</Data> <LastModified>2006-01-01T12:00:00.000Z</LastModified> <ETag>"828ef3fdfa96f00ad9f27c383fc9ac7f"</ETag> </GetObjectResponse> </GetObjectResponse>
REST GET エラー回復
オブジェクトの GET が失敗した場合、ダウンロードする範囲を指定してファイルの残りの部分を取得できます。そのためには、ListBucket を使用してオブジェクトのサイズを取得し、ファイルの残りの部分でレンジ GET を実行する必要があります。詳細については、「GetObjectExtended (SOAP API)」を参照してください。