public static function fromPutObjectTagging()

in src/Transform/ObjectBasic.php [1183:1222]


    public static function fromPutObjectTagging(Models\PutObjectTaggingRequest $request): OperationInput
    {
        Functions::assertFieldRequired('bucket', $request->bucket);
        Functions::assertFieldRequired('key', $request->key);
        Functions::assertFieldRequired('tagging', $request->tagging);
        $input = new OperationInput(
            'PutObjectTagging',
            'PUT',
            ['Content-Type' => 'application/xml'],
        );
        $input->setBucket($request->bucket);
        $input->setKey($request->key);
        $input->setParameter('tagging', '');
        $input->setOpMetadata('sub-resource', ["tagging",]);
        $customSerializer = [
            static function (Models\PutObjectTaggingRequest $request, OperationInput $input) {
                if (isset($request->tagging)) {
                    $xml = new \SimpleXMLElement('<?xml version="1.0" encoding="UTF-8"?><Tagging></Tagging>');
                    if (isset($request->tagging->tagSet)) {
                        $xmlTagSet = $xml->addChild('TagSet');
                        foreach ($request->tagging->tagSet->tags as $tag) {
                            $xmlTag = $xmlTagSet->addChild('Tag');
                            $xmlTag->addChild('Key', strval($tag->key));
                            $xmlTag->addChild('Value', strval($tag->value));
                        }
                    }
                    $input->setBody(Utils::streamFor($xml->asXML()));
                }
                if (isset($request->versionId)) {
                    $input->setParameter('versionId', $request->versionId);
                }
                if (isset($request->requestPayer)) {
                    $input->setHeader('x-oss-request-payer', $request->requestPayer);
                }
            },
            [Functions::class, 'addContentMd5']
        ];
        Functions::serializeInputLite($request, $input, $customSerializer);
        return $input;
    }