我正在使用亚马逊AWS SDK的PHP版本.我有一堆带头的文件Expires; 我想删除该标题并添加Cache-control标题.该update_object功能让我添加页眉但不删除它们.
这个问题的答案建议您在复制时可以更新文件的元数据,但我已经尝试过它并且不起作用.这是我用过的:
$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',
),
)
);
Run Code Online (Sandbox Code Playgroud)
但是,复制的对象与原始对象具有完全相同的标题(仅限Expires和Content-Type).我已经尝试了上述各种组合(有和没有Content-Type,Cache-control,meta等)并获得相同的结果.
如何重置元数据?
我正在更新Amazon S3存储桶中的现有对象以设置一些元数据.我想Expires为每个对象设置HTTP 标头以更好地处理HTTP/1.0客户端.
我们正在使用AWS Java SDK,它允许对对象进行元数据更改,而无需重新上传对象内容.我们使用CopyObjectRequest将对象复制到自身.该ObjectMetadata类允许我们设置的Cache-Control,Content-Type和其他几个头.但不是Expires标题.
我知道S3 Expires使用REST API 存储并提供对象PUT 的标头.有没有办法从Java SDK中执行此操作?
更新以表明我们正在使用 CopyObjectRequest