private static function overwirteTagProp()

in src/Copier.php [360:392]


    private static function overwirteTagProp(Models\InitiateMultipartUploadRequest &$imRequest, array &$context)
    {
        $request = $context['request'];
        $tagProp = $context['tag_prop'] ?? null;
        /**
         * @var Models\CopyObjectRequest $request
         * @var Models\GetObjectTaggingResult $tagProp
         */
        $directive = $request->taggingDirective ?? '';

        switch (strtolower($directive)) {
            case '':
            case 'copy':
                $imRequest->tagging = null;
                if ($tagProp != null && $tagProp->tagSet != null) {
                    $tags = [];
                    foreach ($tagProp->tagSet->tags ?? [] as $tag) {
                        $tags[] = sprintf('%s=%s', $tag->key, $tag->value);
                    }

                    if (!empty($tags)) {
                        $imRequest->tagging = implode('&', $tags);
                    }
                }
                break;
            case 'replace':
                // the tagging has been copied via the copyRequest function before
                break;
            default:
                //unsupport Directive
                throw new \InvalidArgumentException("Unsupport TaggingDirective, $directive");
        }
    }