/** * @depends testPutObjectsWithUtf8Keys */ public function testMultipartUploads() { $this->client->waitUntil('bucket_exists', array('Bucket' => $this->bucket)); $this->log('Initiating an upload'); $result = $this->client->createMultipartUpload(array('Bucket' => $this->bucket, 'Key' => 'big', 'Metadata' => array('foo' => 'bar'))); $this->assertNotEmpty($result['UploadId']); $this->assertNotEmpty($result['Key']); $this->assertNotEmpty($result['Bucket']); $uploadId = $result['UploadId']; sleep(1); $this->log('Getting uploads'); $command = $this->client->getCommand('ListMultipartUploads', array('Bucket' => $this->bucket, 'UploadId' => $uploadId)); $result = $command->execute(); $this->assertEquals($this->bucket, $result['Bucket']); $this->assertInternalType('array', $result['Uploads']); $this->assertSame(false, $result['IsTruncated']); $this->log('Aborting the upload'); sleep(2); $this->client->waitUntil('bucket_exists', array('Bucket' => $this->bucket)); $command = $this->client->getCommand('AbortMultipartUpload', array('Bucket' => $this->bucket, 'Key' => 'big', 'UploadId' => $uploadId)); $result = $command->execute(); $this->assertArrayHasKey('RequestId', array_keys($result->toArray())); }