我正在使用AWS SDK for PHP,通過編寫器安裝版本2.4.7。從S3存儲桶刪除文件後,響應對象中的DeleteMarker鍵始終爲空,即使文件實際上已從S3中刪除。該文檔指出,如果操作成功,DeleteMarker應該爲true,否則爲false。S3 DeleteObject - DeleteMarker總是返回空
我刪除電話是:
// 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永遠是假的。即使刪除操作實際上成功並且文件已從S3中刪除,對於DeleteMarker鍵來說,沒有返回值是怎麼回事?
UPDATE:
如果我添加斜線到我的鑰匙開始我得到的假回來,即使文件仍從S3取出的響應。
鍵「路徑/要/我的/ image.jpg的」產生了具有DeleteMarker空值 鍵「/path/to/my/image.jpg」導致DeleteMarker具有空虛假
但在這兩種情況下,圖像將從S3存儲桶中刪除。
有同樣的問題。你有沒有解決這個問題? – Scott
不,我從來沒有解決這個問題。我不想在桶上啓用版本控制,因此我只是按照Simon在下面的建議進行操作,並在刪除調用後發出第二個調用來檢查文件是否存在。這並不理想,因爲如果我可以打一個電話來刪除並知道它是否成功,它會更好。 –