in src/Transform/ObjectBasic.php [151:248]
public static function fromCopyObject(Models\CopyObjectRequest $request): OperationInput
{
Functions::assertFieldRequired('bucket', $request->bucket);
Functions::assertFieldRequired('key', $request->key);
Functions::assertFieldRequired('sourceKey', $request->sourceKey);
$input = new OperationInput(
'CopyObject',
'PUT',
);
$input->setBucket($request->bucket);
$input->setKey($request->key);
$customSerializer = [
static function (Models\CopyObjectRequest $request, OperationInput $input) {
$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->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->acl)) {
$input->setHeader('x-oss-object-acl', $request->acl);
}
if (isset($request->storageClass)) {
$input->setHeader('x-oss-storage-class', $request->storageClass);
}
if (isset($request->metadata)) {
foreach ($request->metadata as $k => $v) {
$input->setHeader("x-oss-meta-$k", (string)$v);
}
}
if (isset($request->cacheControl)) {
$input->setHeader('Cache-Control', $request->cacheControl);
}
if (isset($request->contentDisposition)) {
$input->setHeader('Content-Disposition', $request->contentDisposition);
}
if (isset($request->contentEncoding)) {
$input->setHeader('Content-Encoding', $request->contentEncoding);
}
if (isset($request->contentLength)) {
$input->setHeader('Content-Length', (string)$request->contentLength);
}
if (isset($request->contentMd5)) {
$input->setHeader('Content-MD5', $request->contentMd5);
}
if (isset($request->contentType)) {
$input->setHeader('Content-Type', $request->contentType);
}
if (isset($request->expires)) {
$input->setHeader('Expires', $request->expires);
}
if (isset($request->metadataDirective)) {
$input->setHeader('x-oss-metadata-directive', $request->metadataDirective);
}
if (isset($request->serverSideEncryption)) {
$input->setHeader('x-oss-server-side-encryption', $request->serverSideEncryption);
}
if (isset($request->serverSideDataEncryption)) {
$input->setHeader('x-oss-server-side-data-encryption', $request->serverSideDataEncryption);
}
if (isset($request->serverSideEncryptionKeyId)) {
$input->setHeader('x-oss-server-side-encryption-key-id', $request->serverSideEncryptionKeyId);
}
if (isset($request->tagging)) {
$input->setHeader('x-oss-tagging', $request->tagging);
}
if (isset($request->taggingDirective)) {
$input->setHeader('x-oss-tagging-directive', $request->taggingDirective);
}
if (isset($request->forbidOverwrite)) {
$input->setHeader('x-oss-forbid-overwrite', $request->forbidOverwrite == true ? 'true' : 'false');
}
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;
}