Completes an in-progress multipart upload. A multipart upload is completed by describing the part numbers and corresponding ETag values in order, and submitting that data to Amazon S3 as an XML document.
Access
public
Parameters
Parameter |
Type |
Required |
Description |
---|---|---|---|
|
Required |
The name of the bucket to use. |
|
|
Required |
The file name for the object. |
|
|
Required |
The upload ID identifying the multipart upload whose parts are being listed. The upload ID is retrieved from a call to |
|
|
Required |
The completion XML document. This document can be provided in multiple ways; as a string of XML, as a |
|
|
Optional |
An associative array of parameters that can have the following keys:
|
Returns
Type |
Description |
---|---|
A |
Examples
Complete a multipart upload using a response from list_parts().
- Initiate a new multipart upload using
initiate_multipart_upload()
. - Upload the parts using
upload_part()
. - Complete the upload using
complete_multipart_upload()
.
// Instantiate the class $s3 = new AmazonS3(); $bucket = 'my-bucket' . strtolower($s3->key); $filename = 'movie.mp4'; $upload_id = 'f_JM_zwhU37pj1tS.F2BXVWUJtGcNso1WEikZImjrBCYUbUQwNnOUwX.Z00O1QmKQXAjqQBD4BVZRGmEXAMPLE--'; // Get a list of up to 1000 parts $parts = $s3->list_parts($bucket, $filename, $upload_id); // Initiate a new multipart upload $response = $s3->complete_multipart_upload($bucket, $filename, $upload_id, $parts); // Success? var_dump($response->isOK());Result:
bool(true)
Complete a multipart upload using a string.
$xml = <<<HTML <?xml version="1.0" encoding="utf-8" <CompleteMultipartUpload> <Part> <PartNumber>1</PartNumber> <ETag>"25e317773f308e446cc84c503a6d1f85"</ETag> </Part> <Part> <PartNumber>2</PartNumber> <ETag>"25e317773f308e446cc84c503a6d1f85"</ETag> </Part> <Part> <PartNumber>3</PartNumber> <ETag>"bed3c0a4a1407f584989b4009e9ce33f"</ETag> </Part> </CompleteMultipartUpload> HTML; // Instantiate the class $s3 = new AmazonS3(); $bucket = 'my-bucket' . strtolower($s3->key); $filename = 'movie.mp4'; $upload_id = 'f_JM_zwhU37pj1tS.F2BXVWUJtGcNso1WEikZImjrBCYUbUQwNnOUwX.Z00O1QmKQXAjqQBD4BVZRGmEXAMPLE--'; // Get a list of up to 1000 parts $parts = $s3->list_parts($bucket, $filename, $upload_id); // Initiate a new multipart upload $response = $s3->complete_multipart_upload($bucket, $filename, $upload_id, $xml); // Success? var_dump($response->isOK());Result:
bool(true)
Complete a multipart upload using an array.
// Instantiate the class $s3 = new AmazonS3(); $bucket = 'my-bucket' . strtolower($s3->key); $filename = 'movie.mp4'; $upload_id = 'f_JM_zwhU37pj1tS.F2BXVWUJtGcNso1WEikZImjrBCYUbUQwNnOUwX.Z00O1QmKQXAjqQBD4BVZRGmEXAMPLE--'; // Get a list of up to 1000 parts $parts = $s3->list_parts($bucket, $filename, $upload_id); // Initiate a new multipart upload $response = $s3->complete_multipart_upload($bucket, $filename, $upload_id, array( array('PartNumber' => 1, 'ETag' => '"25e317773f308e446cc84c503a6d1f85"'), array('PartNumber' => 2, 'ETag' => '"a6d1f85f58498973f308e446cc84c503"'), array('PartNumber' => 3, 'ETag' => '"bed3c0a4a1407f584989b4009e9ce33f"'), )); // Success? var_dump($response->isOK());Result:
bool(true)
Related Methods
Source
Method defined in services/s3.class.php | Toggle source view (57 lines) | View on GitHub