/** * {@inheritdoc} */ public static function fromUploadId(AwsClientInterface $client, UploadIdInterface $uploadId) { $transferState = new self($uploadId); foreach ($client->getIterator('ListParts', $uploadId->toParams()) as $part) { $transferState->addPart(UploadPart::fromArray($part)); } return $transferState; }
/** * {@inheritdoc} */ public static function fromUploadId(AwsClientInterface $client, UploadIdInterface $uploadId) { $transferState = new self($uploadId); $listParts = $client->getIterator('ListParts', $uploadId->toParams()); foreach ($listParts as $part) { list($firstByte, $lastByte) = explode('-', $part['RangeInBytes']); $partSize = (double) $listParts->getLastResult()->get('PartSizeInBytes'); $partData = array('partNumber' => $firstByte / $partSize + 1, 'checksum' => $part['SHA256TreeHash'], 'contentHash' => self::ALREADY_UPLOADED, 'size' => $lastByte - $firstByte + 1, 'offset' => $firstByte); $transferState->addPart(UploadPart::fromArray($partData)); } return $transferState; }
/** * Decodes a MIME encoded string and returns a Zend_Mime_Message object with * all the MIME parts set according to the given string * * @param string $message * @param string $boundary * @param string $EOL EOL string; defaults to {@link Zend_Mime::LINEEND} * @return Zend_Mime_Message */ public static function createFromMessage($message, $boundary, $EOL = Zend_Mime::LINEEND) { require_once 'Zend/Mime/Decode.php'; $parts = Zend_Mime_Decode::splitMessageStruct($message, $boundary, $EOL); $res = new self(); foreach ($parts as $part) { // now we build a new MimePart for the current Message Part: $newPart = new Zend_Mime_Part($part['body']); foreach ($part['header'] as $key => $value) { /** * @todo check for characterset and filename */ switch (strtolower($key)) { case 'content-type': $newPart->type = $value; break; case 'content-transfer-encoding': $newPart->encoding = $value; break; case 'content-id': $newPart->id = trim($value, '<>'); break; case 'content-disposition': $newPart->disposition = $value; break; case 'content-description': $newPart->description = $value; break; case 'content-location': $newPart->location = $value; break; case 'content-language': $newPart->language = $value; break; default: throw new Zend_Exception('Unknown header ignored for MimePart:' . $key); } } $res->addPart($newPart); } return $res; }
/** * Decodes a MIME encoded string and returns a Zend_Mime_Message object with * all the MIME parts set according to the given string * * @param string $message * @param string $boundary * @param string $EOL EOL string; defaults to {@link Zend_Mime::LINEEND} * @return \Zend\Mime\Message */ public static function createFromMessage($message, $boundary, $EOL = Mime::LINEEND) { $parts = Decode::splitMessageStruct($message, $boundary, $EOL); $res = new self(); foreach ($parts as $part) { // now we build a new MimePart for the current Message Part: $newPart = new Part($part['body']); foreach ($part['header'] as $header) { /** @var \Zend\Mail\Header\HeaderInterface $header */ /** * @todo check for characterset and filename */ $fieldName = $header->getFieldName(); $fieldValue = $header->getFieldValue(); switch (strtolower($fieldName)) { case 'content-type': $newPart->type = $fieldValue; break; case 'content-transfer-encoding': $newPart->encoding = $fieldValue; break; case 'content-id': $newPart->id = trim($fieldValue, '<>'); break; case 'content-disposition': $newPart->disposition = $fieldValue; break; case 'content-description': $newPart->description = $fieldValue; break; case 'content-location': $newPart->location = $fieldValue; break; case 'content-language': $newPart->language = $fieldValue; break; default: throw new Exception\RuntimeException('Unknown header ignored for MimePart:' . $fieldName); } } $res->addPart($newPart); } return $res; }