in src/Transform/ObjectMultipart.php [330:384]
public static function fromUploadPartCopy(Models\UploadPartCopyRequest $request): OperationInput
{
Functions::assertFieldRequired('bucket', $request->bucket);
Functions::assertFieldRequired('key', $request->key);
Functions::assertFieldRequired('sourceKey', $request->sourceKey);
Functions::assertFieldRequired('partNumber', $request->partNumber);
Functions::assertFieldRequired('uploadId', $request->uploadId);
$input = new OperationInput(
'UploadPartCopy',
'PUT',
);
$input->setBucket($request->bucket);
$input->setKey($request->key);
$customSerializer = [
static function (Models\UploadPartCopyRequest $request, OperationInput $input) {
if (isset($request->partNumber)) {
$input->setParameter('partNumber', strval($request->partNumber));
}
if (isset($request->uploadId)) {
$input->setParameter('uploadId', $request->uploadId);
}
$srcBucket = $request->sourceBucket ?? $request->bucket;
$srcKey = Utils::urlEncode($request->sourceKey, true);
$copySource = "/$srcBucket/$srcKey";
if (isset($request->sourceVersionId)) {
$copySource .= "?versionId=$request->sourceVersionId";
}
$input->setHeader('x-oss-copy-source', $copySource);
if (isset($request->sourceRange)) {
$input->setHeader('x-oss-copy-source-range', $request->sourceRange);
}
if (isset($request->ifMatch)) {
$input->setHeader('x-oss-copy-source-if-match', $request->ifMatch);
}
if (isset($request->ifNoneMatch)) {
$input->setHeader('x-oss-copy-source-if-none-match', $request->ifNoneMatch);
}
if (isset($request->ifModifiedSince)) {
$input->setHeader('x-oss-copy-source-if-modified-since', $request->ifModifiedSince);
}
if (isset($request->ifUnmodifiedSince)) {
$input->setHeader('x-oss-copy-source-if-unmodified-since', $request->ifUnmodifiedSince);
}
if (isset($request->trafficLimit)) {
$input->setHeader('x-oss-traffic-limit', (string)$request->trafficLimit);
}
if (isset($request->requestPayer)) {
$input->setHeader('x-oss-request-payer', $request->requestPayer);
}
},
[Functions::class, 'addContentMd5']
];
Functions::serializeInputLite($request, $input, $customSerializer);
return $input;
}