我正在尝试通过创建旧对象版本的副本来实现“恢复”对象。
我正在使用AWS PHP SDK 2,方法copyObject,但我找不到指定源对象的versionID的方法。
AWS REST API文档(ref)提及
要复制其他版本,请使用versionId子资源。
但SDK文档中未提及。
我尝试将versionID添加到“CopySource”属性,SDK文档说它是
源对象的名称和源对象的键名称,用斜杠(/)
分隔
但它不起作用。
$param = array(
'Bucket' => $this->bucket,
'CopySource' => urlencode($this->bucket . $this->delimiter . $source_key . $this->delimiter . $source_version_id),
'Key' => $dest_key
);
$result = $this->s3Client->copyObject($param);
如何指定源对象的versionID?
答案 0 :(得分:4)
感谢AWS Discussion forum,我找到了答案。 正确的参数设置是
$param = array(
'Bucket' => $this->bucket,
'CopySource' => urlencode($this->bucket . $this->delimiter . $source_key) . '?versionId=' . $source_version_id,
'Key' => $dest_key
);