döndürür PHP için AWS SDK'yı, besteci aracılığıyla yüklenen 2.4.7 sürümünü kullanıyorum. Bir S3 grubundan bir dosyayı sildikten sonra, yanıt nesnesi içindeki DeleteMarker anahtarı, dosya S3'ten silinmiş olsa bile her zaman boştur. Belgeleme, işlem başarılı olursa, DeleteMarker'ın doğru olması gerektiğini belirtir, aksi halde yanlıştır.S3 DeleteObject - DeleteMarker her zaman boş
// delete S3 object
$result = $s3->deleteObject(array(
'Bucket' => $this->_bucket,
'Key' => $object_key,
));
ve yanıttır:
Benim silme çağrıdır
Guzzle\Service\Resource\Model Object
(
[structure:protected] =>
[data:protected] => Array
(
[DeleteMarker] =>
[VersionId] =>
[RequestId] => 2CC3EC60C4294CB5
)
)
Sonra yaparsanız:
// check if was deleted
$is_deleted = (bool) $result->get('DeleteMarker');
$ is_deleted hep yanlıştır. Silme işlemi gerçekten başarılı olsa ve dosya S3'ten kaldırılmış olsa bile, DeleteMarker anahtarına karşı herhangi bir değer döndürülmemiş olabilir mi?
GÜNCELLEME:
benim anahtar başlangıcına bir çizgi eklerseniz ben dosya hala S3 kaldırılır rağmen geri sahte bir yanıt almak.
Anahtarı "yol// benim/image.jpg için" DeleteMarker sahip DeleteMarker içinde Anahtar "/path/to/my/image.jpg" sonuç boş değeri olan sonuçlanır
Ama her iki durumda da
sahte boş görüntüler S3 grubundan kaldırılır.
Aynı sorunu yaşıyor. Bunu hiç çözdün mü? – Scott
Hayır, bunu asla çözemedim. Kovada sürüm oluşturmayı etkinleştirmek istemedim, bu yüzden Simon'ın aşağıda önerdiği gibi yaptığım ve silme işleminden sonra dosyanın mevcut olup olmadığını kontrol etmek için ikinci bir çağrı yapıyorum. Başarılı olsaydı veya olmasaydı silmek için bir çağrı yapıp bunu bilirsem daha iyi olurdu. –