我正在使用亚马逊AWS SDK的PHP版本。我有一堆带有Expires
标题的文件;我想删除该标题并添加Cache-control
标题。 update_object函数让我添加标题但不删除它们。如何使用Amazon S3 SDK更新元数据
answers on this question建议您在复制文件时可以更新文件的元数据,但我已经尝试过了,但无法正常工作。这是我用的:
$response = $s3->copy_object(
array(
'bucket' => $bucket,
'filename' => $file,
),
array(
'bucket' => $bucket,
'filename' => $file2,
),
array(
'acl' => AmazonS3::ACL_PUBLIC,
'headers' => array(
'Content-Type' => 'image/jpeg',
'Cache-Control' => 'public,max-age=30240000',
),
'meta' => array(
'x-fake-header' => 'something awesome is happening',
),
)
);
但是,复制的对象具有与原始对象(仅Expires和Content-Type)完全相同的标头。我已经尝试了上述的所有方式组合(有和没有内容类型,缓存控制,元等),并得到相同的结果。
如何重置元数据?
的更新元数据这一措辞有些奇怪。为什么会复制到不同的文件“变”任何头?你的意思是它没有在新文件上设置标题? – 2013-11-25 22:15:37
@alex对不起,如果它不明确。它应该改变标题,因为在请求中设置了新的标题。如果使用headers参数复制到相同的文件名(例如FileA.jpg - > FileA.jpg),它将更改标题,但如果复制到其他文件(例如FileA.jpg - > FileB.jpg),则提供的标题为没有设置。 – DisgruntledGoat 2013-11-26 01:37:56