php - AWS S3 CopyObject 版本

标签 php amazon-web-services amazon-s3

我正在尝试通过创建旧对象版本的副本来实现“恢复”对象。

我正在使用 AWS PHP SDK 2,方法 copyObject , 但我找不到指定源对象的 versionID 的方法。

AWS REST API 文档 ( ref) 提到

To copy a different version, use the versionId subresource.

但是SDK文档中没有提到。

我试图将 versionID 添加到“CopySource”属性,SDK 文档说是

The name of the source bucket and key name of the source object, separated by a slash (/)

但是没有用。

$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);

问题

如何指定源对象的版本ID?

最佳答案

感谢 AWS Discussion forum,我找到了答案. 正确的参数设置是

$param = array(
  'Bucket' => $this->bucket,
  'CopySource' => urlencode($this->bucket . $this->delimiter . $source_key) . '?versionId=' . $source_version_id,
  'Key' => $dest_key
);

关于php - AWS S3 CopyObject 版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20467901/

相关文章:

python AWS boto3为文件上传创建预先签名的url

php - 使用 app fog 更新 php 应用程序

python - 安装最新版本的 EB CL 时出现问题

php - Laravel,你需要指定一个文件路径来存储种子

amazon-web-services - AWS Textract 无法处理 PDF 中的发票。有什么建议吗?

javascript - 如何测试 AWS lambda

ios - 从 IOS (Xcode) 使用 AWS token 自动售货机订阅 SNS 通知的步骤是什么?

python - 如何将 Azure Blob 流式传输到 AWS S3?

php - 为什么MAMP不更改php版本

php - 如何更改phpmailer中的字体?