iam*_*dev 1 php sdk amazon-s3 amazon-web-services
将标题选项包含到copy_object时,标题不会更新.
在使用update_object进行单独调用之前,标题不会更新.我希望我做错了什么,但我已经测试了这4-5种不同的方式,甚至进入sdk代码来探讨.
这是一个错误吗?
我正在使用最新的1.4.3 SDK
这是我的电话:
$amazonS3->copy_object(
array( //Source
'bucket' => SOURCE_BUCKET,
'filename' => $source_file
),
array( //Target
'bucket' => VIDEO_BUCKET,
'filename' => $dest_file,
),
array( //Options
'acl' => AmazonS3::ACL_PRIVATE,
'headers' => array(
'Content-Type' => 'application/octet-stream',
'Content-Disposition' => 'attachment'
)
);
Run Code Online (Sandbox Code Playgroud)
小智 5
我自己有这个问题并解决了它iamdev.经过大约半天的疯狂之后,我开始关注实际的API,而不仅仅是尝试使用它.
在第1690行的sdk.class.php中,您将看到以下内容:
if (isset($opt['metadataDirective']))
$opt['headers']['x-amz-metadata-directive'] = $opt['metadataDirective'];
unset($opt['metadataDirective']);
}
Run Code Online (Sandbox Code Playgroud)
这意味着如果您没有将对象复制到自身,它将不会替换密钥,因此不会更新它.
对我有用的是在我的调用中明确设置metadataDirective,所以:
$amazonS3->copy_object(
array( //Source
'bucket' => SOURCE_BUCKET,
'filename' => $source_file
),
array( //Target
'bucket' => VIDEO_BUCKET,
'filename' => $dest_file,
),
array( //Options
'acl' => AmazonS3::ACL_PRIVATE,
'headers' => array(
'Content-Type' => 'application/octet-stream',
'Content-Disposition' => 'attachment'
),
'metadataDirective' => 'REPLACE',
);
Run Code Online (Sandbox Code Playgroud)
希望这对你有用,虽然这是一个老帖子,你可能找到了一个解决方法.
最好的,HG
| 归档时间: |
|
| 查看次数: |
1235 次 |
| 最近记录: |