private function checkArgs()

in src/Copier.php [105:151]


    private function checkArgs(array &$context, Models\CopyObjectRequest &$request, array &$args): array
    {
        $context = $this->filterArgs($args) + $this->options;

        if (!Validation::isValidBucketName(Utils::safetyString($request->bucket))) {
            throw new \InvalidArgumentException('invalid field, request.bucket.');
        }

        if (!Validation::isValidObjectName(Utils::safetyString($request->key))) {
            throw new \InvalidArgumentException('invalid field, request.key.');
        }

        if (!Validation::isValidObjectName(Utils::safetyString($request->sourceKey))) {
            throw new \InvalidArgumentException('invalid field, request.sourceKey.');
        }

        if ($request->metadataDirective != null && !in_array($request->metadataDirective, ['COPY', 'REPLACE'])) {
            throw new \InvalidArgumentException('invalid field, request.metadataDirective.');
        }

        if ($request->taggingDirective != null && !in_array($request->taggingDirective, ['COPY', 'REPLACE'])) {
            throw new \InvalidArgumentException('invalid field, request.taggingDirective.');
        }

        if (Utils::safetyInt($context['part_size']) <= 0) {
            $context['part_size'] = Defaults::DEFAULT_COPY_PART_SIZE;
        }

        if (Utils::safetyInt($context['parallel_num']) <= 0) {
            $context['parallel_num'] = Defaults::DEFAULT_COPY_PARALLEL;
        }

        if (Utils::safetyInt($context['multipart_copy_threshold']) < 0) {
            $context['multipart_copy_threshold'] = Defaults::DEFAULT_COPY_THRESHOLD;
        }

        $context['request'] = $request;
        $context['path'] = sprintf('oss://%s/%s', $request->bucket, $request->key);

        //meta_prop & tag_prop
        if (isset($args['meta_prop']) && $args['meta_prop'] instanceof Models\HeadObjectResult) {
            $context['total_size'] = $args['meta_prop']->contentLength;
            $context['meta_prop'] = $args['meta_prop'];
        }

        return $context;
    }