Я не могу пройти мимо "403 (Forbidden)"
или последующей ошибки AccessDenied
Доступ запрещен ... ...
при попытке удалить ключ из моего AWS S3. Для тестирования я сделал общедоступную корзину и добавил правила CORS для DELETE, и разрешил s3: DeleteObject для всех файлов в каталоге следующим образом:
"Resource": "arn:aws:s3:::...(directory)/*
.
Вот что я пробовал в коде:
function deleteS3file(bucket, path, filename) {
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function(){
if (xmlhttp.readyState == 4) {
if (Math.floor(xmlhttp.status/100) != 2){
alert(filename +" not deleted from S3\n"+xmlhttp.status+" "+xmlhttp.responseText);
// http://mysourceip.com/
} else {
console.log(filename +" deleted from S3");
}
}
}
xmlhttp.open("DELETE", bucket, true);
xmlhttp.send(path+'/'+filename);
}
(это просто дает мне ошибку 403)
и
function deleteS3file(bucket, path, filename) { // path without leading slash
var fd = new FormData();
fd.append('key', path+filename); // full path to file
fd.append('acl', 'bucket-owner-full-control');
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function(){
if (xmlhttp.readyState == 4) {
if (Math.floor(xmlhttp.status/100) != 2){
alert(filename +" not deleted from S3\n"+xmlhttp.status+" "+xmlhttp.responseText);
// http://mysourceip.com/
} else {
console.log(filename +" deleted from S3");
}
}
}
xmlhttp.open("DELETE", bucket, true);
xmlhttp.send(fd);
}
(это дает мне 403 и ошибку отказа в доступе AWS)
У меня есть идея, что моя конфигурация корзины верна, потому что я могу загружать файлы без проблем. Документация AWS, кажется, указывает на мое первое решение, но тогда я даже не получаю ответ AWS.