我正在使用AWS SDK for
PHP,版本2.4.7通过composer安装.从S3存储桶中删除文件后,即使文件实际已从S3中删除,响应对象中的DeleteMarker键也始终为空.文档说明如果操作成功则DeleteMarker应为true,否则为false.
我的删除电话是:
// delete S3 object
$result = $s3->deleteObject(array(
'Bucket' => $this->_bucket,
'Key' => $object_key,
));
并且响应是:
Guzzle\Service\Resource\Model Object
(
[structure:protected] =>
[data:protected] => Array
(
[DeleteMarker] =>
[VersionId] =>
[RequestId] => 2CC3EC60C4294CB5
)
)
如果我那么做:
// check if was deleted
$is_deleted = (bool) $result->get('DeleteMarker');
$is_deleted始终为false.如果删除操作实际上成功并且文件已从S3中删除,那么对于DeleteMarker键没有返回任何值是怎么回事?
更新:
如果我在我的键的开头添加一个斜杠,即使文件仍然从S3中删除,我也会得到一个错误的响应.
键“path / to / my / image.jpg”导致DeleteMarker具有空值
键“/path/to/my/image.jpg”导致DeleteMarker为空false
但在这两种情况下,图像都会从S3存储桶中删除.