public static function fromUploadPartCopy()

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;
    }